Mockingbird Toolbox 0.9.7

Mockingbird Toolbox 0.9.7

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最后发布2014年12月

Evan Maloney 维护。



  • Evan Coyne Maloney

Mockingbird Toolbox

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 为 NSStringNSMutableString 提供了类扩展,以帮助创建、操作和执行正则表达式。

这些扩展利用了 MBRegexCache 重复使用正则表达式,因为创建正则表达式可能会非常昂贵。

消息摘要

《MBMessageDigest》类提供了一个高级API,用于从字符串、NSData实例、字节数组和文件生成MD5和SHA-1安全单向散列。

同时提供了对NSStringNSData的类扩展,以便简化从现有对象创建消息摘要的过程。

网络活动指示器

MBNetworkIndicator类提供了一个协调状态栏网络活动指示器显示的机制。

颜色

Mockingbird Toolbox包括创建、检查和操作颜色的各种实用工具。

图像

该工具箱包含一个用于缩放图像的UIImage类扩展,以及一个用于捕获视图内容为UIImageCIImageCGImageRefUIView类扩展。

位图

MBBitmapPixelPlane类表示一个像素平面,可以独立访问,而不考虑底层的像素格式。这允许从位图中直接提取和操作像素数据。

...等等

这只是一个简要概述。

有关详细信息,请参阅Mockingbird Toolbox API文档

与Mockingbird Toolbox集成

您可以以多种方式使用Mockingbird Toolbox

每种技术都有其优点和缺点,我们将留给你决定哪种最适合你的开发工作流程。

如果您没有强烈理由使用其他方法,我们建议您使用Cocoapods。我们已为podspec进行配置,以便您可以对最终二进制文件中包含的内容具有最精确的控制。您可以使用所需的一切,而无需为未使用功能承担额外开销。从长远来看,Cocoapods将为您保持更新任何关键更改提供一个简单的方法。

Cocoapod子规范

如果您只想使用“一些”Toolbox中的内容,我们提供了许多Cocoapod子规范,让您可以选择Mockingbird Toolbox中想要使用的组件。

以下是将子规范添加到您的Podfile中的方法

    pod 'mockingbird-toolbox/BatteryMonitor'
    pod 'mockingbird-toolbox/BitmapPixelPlane'

上面的行将只添加Mockingbird Toolbox中的BatteryMonitor和BitmapPixelPlane部分到您的项目中。

提供的一些子规范包括

电池 & 电源监控
  • BatteryMonitor - 包含MBBatteryMonitor类和相关项
缓存
  • ThreadsafeCache - 包含MBThreadsafeCache类和相关项
  • FilesystemCache - 包含MBFilesystemCache类和相关项
字段格式化
  • FieldListFormatter - 指定MBFieldListFormatter
  • FormattedDescriptionObject - 指定MBFieldListFormatterMBFormattedDescriptionObject
图形
  • 位图像素平面 - 包含了 MBBitmapPixelPlane 类和相关项
  • 颜色工具 - 指定 <-code>MBColorTools.h 文件中的声明
  • 圆形矩形工具 - 指定 <-code>MBRoundedRectTools 类
  • MB工具箱-UIColor - 一个 <-code>UIColor 类扩展,添加了获取和修改颜色信息的几个方法
  • 图像缩放-UIImage - 一个 <-code>UIImage 类扩展,添加了图像缩放的方法
  • 快照图像-UIView - 一个 <-code>UIView 类扩展,添加了获取视图内容图像快照的方法
消息摘要
  • MessageDigest - 指定 <-code>MBMessageDigest 类
  • MessageDigest-NSString - 包含 <-code>MBMessageDigest 类和提供相关便利方法的 <-code>NSString 类扩展
  • MessageDigest-NSData - 包含 <-code>MBMessageDigest 类和提供相关便利方法的 <-code>NSData 类扩展
  • MessageDigest-Extensions - 包含 <-code>MBMessageDigest 类和所有相关类扩展
网络
  • 网络指示器 - 指定 <-code>MBNetworkIndicator 类
  • 网络监控器 - 指定 <-code>MBNetworkMonitor 服务,它是 <-code>Reachability 的高级替代品,提供附加功能
NSOperations
  • 操作队列 - 指定 <-code>MBOperationQueue 类
  • 文件系统操作 - 包含 <-code>MBOperationQueue 类和多种文件系统操作
正则表达式
  • 正则表达式缓存 - 指定 <-code>MBRegexCache 单例
  • 正则表达式-NSString - <-code>NSString 和 <-code>NSMutableString 的类扩展,提供使用 <-code>MBRegexCache 处理正则表达式的便利方法,以改善性能
运行时服务
  • 服务管理器 - 指定 <-code>MBServiceManager 单例和 <-code>MBService 协议
单例
  • 单例 - 声明 <-code>MBSingleton 和 <-code>MBInstanceVendor 协议,以及提供基于 <-code>dispatch_once() 的默认单例实现的预处理器宏 <-code>MBImplementSingleton()
字符串操作
  • 字符串函数 - 声明 <-code>MBForceString 和 <-code>MBTrimString 内联函数,以及 <-code>MBStringify 预处理器宏
  • 缩进-NSString - 一个 <-code>NSString 类扩展,添加了使用制表符和任意前缀缩进字符串中每个行的方法
  • 字符串大小-UIFont - 一个 <-code>UIFont 类扩展,添加了执行常见文本测量任务的方法
线程局部存储
  • 线程局部存储 - 指定 <-code>MBThreadLocalStorage 类
...以及更多

在 <-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 文件

集成

一旦构建了希望使用的静态库,您需要将库二进制和头文件添加到您的项目中。

  1. 在Xcode中,打开您想要添加Mockingbird Toolbox的项目文件。

  2. 在导航器侧栏中,选择第一个标签,即 项目导航器。您可以通过按⌘1快速显示它。

  3. 找到“其他链接器标志”构建设置。双击当前值以打开编辑器,然后单击“+”按钮添加新的链接器标志。

  4. 如果尚不存在,将值 -ObjC 添加到链接器标志中。

  5. Headers 目录和适当的库文件从 Products/MBToolbox 中复制到项目中的新目录中。

  6. 将新目录拖放到Xcode中的 项目导航器 中的项目中。这将弹出对话框,允许您选择Mockingbird Toolbox将被添加到的目标。选择适当的复选框,然后单击 完成 按钮。

如果您成功完成了上面的步骤,现在您可以从您的项目中开始使用Mockingbird Toolbox了。

注意: 当您使用静态库集成Mockingbird Toolbox时,您需要使用“用户头文件导入”标记引用头文件,例如:

    #import "MBDebug.h"

嵌入项目文件

您可以通过嵌入MBToolbox.xcodeproj项目文件,将Mockingbird Toolbox添加到现有的Xcode项目中。

如果您的项目依赖于Xcode创建的默认的“调试”和“发布”构建配置,那么您对该设置的选定将级联到Toolbox,当它构建时。这很方便,如果您发现需要在本Toolbox中进行调试。

在嵌入项目文件时,您需要修改您当前项目的构建设置,以确保您的目标可以链接到库二进制文件,并且Xcode可以找到必要的头文件。

以下是如何通过项目文件嵌入Mockingbird Toolbox的方法:

一、嵌入

  1. 在Xcode中,打开您想要添加Mockingbird Toolbox的项目文件。

  2. 在导航器侧栏中,选择第一个标签,即 项目导航器。您可以通过按⌘1快速显示它。

  3. 在项目导航器中选择代表您的项目的项。除非您有一个复杂的项目结构,否则您的项目将是树中最顶部的项。

  4. 文件菜单中,选择“将文件添加到...”。

  5. 找到MBToolbox.xcodeproj文件,选择它,然后按添加按钮。

二、构建“MBToolbox”

一旦嵌入项目文件,请使用“MBToolbox”方案在Xcode中执行构建。

这不仅是一个好方法来验证一切是否按预期工作,而且成功的构建确保适当的头文件被复制到在您的本地副本中mockingbird-toolbox仓库内的Products/MBToolbox/Headers目录。

三、配置构建设置

  1. 在项目导航器中选择您的项目后,在窗口的主要部分选择您的项目,然后选择构建设置面板。

  2. 找到“用户头文件搜索路径”的设置,双击当前值。这将弹出设置值的编辑器。在编辑器的左下角,点击“+”按钮。一个新文本输入框将出现在编辑器中已列出的任何值下方。

  3. 输入指向您本地副本中mockingbird-toolbox仓库内的Products/MBToolbox/Headers目录的文件系统路径。这可以是项目文件所在目录的相对路径,或者是一个绝对路径。确切的值取决于您在文件系统中放置mockingbird-toolbox的位置。

  4. 现在,找到“其他链接器标志”构建设置。双击当前值以打开编辑器,然后点击“+”按钮添加一个新的链接器标志。

  5. 如果尚不存在,将值 -ObjC 添加到链接器标志中。

四、依赖项与链接

对于项目中将使用 Toolbox 的每个目标,执行以下操作:

  1. 在项目导航器中选择您的项目后,在窗口的主要部分选择您的目标,并选择构建阶段设置面板。

  2. 在“目标依赖”部分,点击“+”按钮,并将MBToolbox库作为目标依赖项添加。

  3. 在“链接二进制与库”部分,点击“+”按钮,并添加libMBToolbox.a

五、完成!

如果您成功完成了上面的步骤,现在您可以从您的项目中开始使用Mockingbird Toolbox了。

注意: 当您通过项目文件嵌入集成Mockingbird Toolbox时,您需要使用“用户头文件”导入符号引用头文件,例如。

    #import "MBDebug.h"

关于Mockingbird Toolbox

Mockingbird Toolbox代表了Mockingbird库的基础。

多年来,Gilt Groupe将其Mockingbird Library作为其各种iOS项目的基平台,并进行使用和改进。

Mockingbird Library Module Layers

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许可证