Mockingbird Toolbox 是一套用于 iOS 应用的一般性实用代码。
Toolbox 是 Gilt Groupe 的开源项目 Mockingbird Library 中最低级别的模块。
主分支状态
Mockingbird Toolbox 包含以下内容:
MBBatteryMonitor
类报告设备的电源状态和电池电量,并在这些值发生变化时通过 NSNotificationCenter
发布事件。
MBNetworkMonitor
类提供有关设备 Wi-Fi 和运营商网络的当前状态的详细信息,并且可以在网络状态发生变化时配置为发布 NSNotificationCenter
事件。
Mockingbird Toolbox 提供了一个简单但可扩展的缓存架构。
MBThreadsafeCache
类实现了一个基本的内存缓存,可以安全地在线程之间共享。
一个子类,MBFilesystemCache
,给内存缓存添加了一个文件系统后端存储。
MBThreadLocalStorage
为在非相关代码单元之间安全共享线程局部存储提供了一种接口。
该类还可以用作无锁缓存:创建成本高昂的对象,例如 NSDateFormatter
实例,可以缓存在线程局部存储中,而无需承担类似 MBThreadsafeCache
这样的共享对象缓存所需的锁定开销。
Mockingbird Toolbox 为 NSString
和 NSMutableString
提供了类扩展,以帮助创建、操作和执行正则表达式。
这些扩展利用了 MBRegexCache
重复使用正则表达式,因为创建正则表达式可能会非常昂贵。
《MBMessageDigest》类提供了一个高级API,用于从字符串、NSData
实例、字节数组和文件生成MD5和SHA-1安全单向散列。
同时提供了对NSString
和NSData
的类扩展,以便简化从现有对象创建消息摘要的过程。
MBNetworkIndicator
类提供了一个协调状态栏网络活动指示器显示的机制。
Mockingbird Toolbox包括创建、检查和操作颜色的各种实用工具。
该工具箱包含一个用于缩放图像的UIImage
类扩展,以及一个用于捕获视图内容为UIImage
、CIImage
或CGImageRef
的UIView
类扩展。
MBBitmapPixelPlane
类表示一个像素平面,可以独立访问,而不考虑底层的像素格式。这允许从位图中直接提取和操作像素数据。
这只是一个简要概述。
有关详细信息,请参阅Mockingbird Toolbox API文档。
您可以以多种方式使用Mockingbird Toolbox
每种技术都有其优点和缺点,我们将留给你决定哪种最适合你的开发工作流程。
如果您没有强烈理由使用其他方法,我们建议您使用Cocoapods。我们已为podspec进行配置,以便您可以对最终二进制文件中包含的内容具有最精确的控制。您可以使用所需的一切,而无需为未使用功能承担额外开销。从长远来看,Cocoapods将为您保持更新任何关键更改提供一个简单的方法。
如果您只想使用“一些”Toolbox中的内容,我们提供了许多Cocoapod子规范,让您可以选择Mockingbird Toolbox中想要使用的组件。
以下是将子规范添加到您的Podfile
中的方法
pod 'mockingbird-toolbox/BatteryMonitor'
pod 'mockingbird-toolbox/BitmapPixelPlane'
上面的行将只添加Mockingbird Toolbox中的BatteryMonitor和BitmapPixelPlane部分到您的项目中。
提供的一些子规范包括
MBBatteryMonitor
类和相关项MBThreadsafeCache
类和相关项MBFilesystemCache
类和相关项MBFieldListFormatter
类MBFieldListFormatter
和MBFormattedDescriptionObject
类MBBitmapPixelPlane
类和相关项在 <-a href="https://github.com/gilt/mockingbird-toolbox/blob/master/mockingbird-toolbox.podspec">podspec 中声明和记录了其他子规范。
通过构建静态库,你将得到一个可以在任何项目中使用的二进制库文件,以及包含库的公共 API 的头文件集。
这允许你避免需要集成第三方包管理器,例如 Cocoapods,并且不需要你将我们的项目文件嵌入到你的项目中。
可以将Mockingbird Toolbox构建为三种静态库类型之一
设备二进制,适用于iOS设备,如iPhone和iPad
模拟器二进制,适用于Macintosh上的Xcode和iOS模拟器
通用二进制,将设备和模拟器二进制合并到一个库中
在大多数情况下,如果您打算使用静态库,您可能希望选择通用二进制。
相对于设置构建构建配置以包含设备二进制来为设备构建,以及模拟器二进制来为模拟器构建,链接到通用二进制要方便得多。
通用二进制的问题是,其大小大约是设备二进制 alone的两倍。
因此,除非您在构建分发二进制文件时使用 lipo
从静态库中删除模拟器架构,否则您将为您的发行应用程序添加不必要的开销。
选择“MBToolbox”构建方案允许您构建设备二进制或模拟器二进制。
如果选择iOS设备运行目标,Xcode将构建设备二进制。运行目标可以是通用的“iOS Device”,或连接到Macintosh的实际iOS设备的名称。
如果将某个iOS模拟器变体选择为运行目标,Xcode将构建模拟器二进制。
可以使用“MBToolboxUniversal”方案构建通用二进制。
在构建通用二进制时,可以选择任何iOS兼容的运行目标(即,设备或模拟器)。
为所需的二进制类型选择合适的构建方案和运行目标。
然后,从Xcode的 产品 菜单选择“构建”或按⌘B来构建静态库。
如果没有错误发生,您将在 mockingbird-toolbox
存储库的本地副本中的 Products/MBToolbox
目录中找到静态库。
libMBToolbox-device.a
是用于iOS设备的库
libMBToolbox-simulator.a
是用于iOS模拟器开发者工具的库
libMBToolbox-universal.a
是通用二进制,可用于设备并在模拟器中使用
在 Headers
目录中包含开发Mockingbird Toolbox所需的 .h
文件
一旦构建了希望使用的静态库,您需要将库二进制和头文件添加到您的项目中。
在Xcode中,打开您想要添加Mockingbird Toolbox的项目文件。
在导航器侧栏中,选择第一个标签,即 项目导航器。您可以通过按⌘1快速显示它。
找到“其他链接器标志”构建设置。双击当前值以打开编辑器,然后单击“+”按钮添加新的链接器标志。
如果尚不存在,将值 -ObjC
添加到链接器标志中。
将 Headers
目录和适当的库文件从 Products/MBToolbox
中复制到项目中的新目录中。
将新目录拖放到Xcode中的 项目导航器 中的项目中。这将弹出对话框,允许您选择Mockingbird Toolbox将被添加到的目标。选择适当的复选框,然后单击 完成 按钮。
如果您成功完成了上面的步骤,现在您可以从您的项目中开始使用Mockingbird Toolbox了。
注意: 当您使用静态库集成Mockingbird Toolbox时,您需要使用“用户头文件导入”标记引用头文件,例如:
#import "MBDebug.h"
您可以通过嵌入MBToolbox.xcodeproj
项目文件,将Mockingbird Toolbox添加到现有的Xcode项目中。
如果您的项目依赖于Xcode创建的默认的“调试”和“发布”构建配置,那么您对该设置的选定将级联到Toolbox,当它构建时。这很方便,如果您发现需要在本Toolbox中进行调试。
在嵌入项目文件时,您需要修改您当前项目的构建设置,以确保您的目标可以链接到库二进制文件,并且Xcode可以找到必要的头文件。
以下是如何通过项目文件嵌入Mockingbird Toolbox的方法:
在Xcode中,打开您想要添加Mockingbird Toolbox的项目文件。
在导航器侧栏中,选择第一个标签,即 项目导航器。您可以通过按⌘1快速显示它。
在项目导航器中选择代表您的项目的项。除非您有一个复杂的项目结构,否则您的项目将是树中最顶部的项。
在文件菜单中,选择“将文件添加到...”。
找到MBToolbox.xcodeproj
文件,选择它,然后按添加按钮。
一旦嵌入项目文件,请使用“MBToolbox”方案在Xcode中执行构建。
这不仅是一个好方法来验证一切是否按预期工作,而且成功的构建确保适当的头文件被复制到在您的本地副本中mockingbird-toolbox
仓库内的Products/MBToolbox/Headers
目录。
在项目导航器中选择您的项目后,在窗口的主要部分选择您的项目,然后选择构建设置面板。
找到“用户头文件搜索路径”的设置,双击当前值。这将弹出设置值的编辑器。在编辑器的左下角,点击“+”按钮。一个新文本输入框将出现在编辑器中已列出的任何值下方。
输入指向您本地副本中mockingbird-toolbox
仓库内的Products/MBToolbox/Headers
目录的文件系统路径。这可以是项目文件所在目录的相对路径,或者是一个绝对路径。确切的值取决于您在文件系统中放置mockingbird-toolbox
的位置。
现在,找到“其他链接器标志”构建设置。双击当前值以打开编辑器,然后点击“+”按钮添加一个新的链接器标志。
如果尚不存在,将值 -ObjC
添加到链接器标志中。
对于项目中将使用 Toolbox 的每个目标,执行以下操作:
在项目导航器中选择您的项目后,在窗口的主要部分选择您的目标,并选择构建阶段设置面板。
在“目标依赖”部分,点击“+”按钮,并将MBToolbox
库作为目标依赖项添加。
在“链接二进制与库”部分,点击“+”按钮,并添加libMBToolbox.a
。
如果您成功完成了上面的步骤,现在您可以从您的项目中开始使用Mockingbird Toolbox了。
注意: 当您通过项目文件嵌入集成Mockingbird Toolbox时,您需要使用“用户头文件”导入符号引用头文件,例如。
#import "MBDebug.h"
Mockingbird Toolbox代表了Mockingbird库的基础。
多年来,Gilt Groupe将其Mockingbird Library作为其各种iOS项目的基平台,并进行使用和改进。
Mockingbird最初由Jesse Boyes创建,名为AppFramework。
AppFramework在Gilt Groupe找到了归宿,并最终发展成为Mockingbird Library。
近年来,Mockingbird Library由Gilt Groupe的主要iOS工程师Evan Coyne Maloney开发和维护。
Mockingbird Library和Mockingbird Toolbox © 版权所有 2009-2014,Gilt Groupe。
许可根据MIT许可证。