XUCore
这是我们应用中使用的一个核心框架。它通过添加便利方法扩展了现有类型,同时也引入了很多类,允许您只需一行代码就将特定功能添加到您的应用中。
如果您决定在自己的项目中使用这个框架,需要给予一些认可。
历史
我们目前几乎完成了框架的重构。最初,这些只是一些放在单独仓库中的文件,现在它们被集成在一起。出于历史原因,该框架包含一些以 FC
前缀开头的类(或函数集)。我们将这些迁移到 XU
前缀的命名空间中,因为这些类将被用 Swift 重写。
FC
类作为 XU
类的子类仍然可用,但已弃用,不应使用,因为它们很快将被完全删除。
用法
就像 Objective-C 中的 @import XUCore;
或者在 Swift 中的 import XUCore
一样简单。
大多数类现在都有适当的文档,所以您可以去查看它们。越来越多的功能开始仅支持 Swift,因此从 ObjC 使用此框架不是一个好主意。
弃用
框架中目前现存的 Objective-C 代码弃用在 Swift 中使用,以下情况除外:
- 扩展 - 在ObjC中存在两种扩展,一种集成了在Swift中实际上并不使用的类(如
NSArray
、NSDictionary
和NSString
),或者使用CommonCrypto
,但作为一个模块仍未简单化引入,而且我还没有时间在Swift中使用它。 - XURegex - 利用C++代码,但这不能在Swift中使用。
- XUExceptionHandler - 显然需要用ObjC编写,因为在Swift中无法捕获ObjC异常。
文档
该框架包含具有特定功能的几个组。
扩展
各种类(ObjC类别或Swift扩展)的各种附加功能。一些值得注意的示例
ArrayExtensions
- 扩展SequenceType
、Array
等。DictionaryExtensions
- 非常方便的方法,主要用于处理JSON字典。NSDecimalNumberAdditions
-NSDecimalNumber
的Swift版本。NSLockAdditions
- 在捕获异常的同时执行锁定的代码块,当抛出异常时自动解锁锁,以防止死锁。NSMutableURLRequestAdditions
- 设置头部值的各种方法。NSURLExtensions
- 用于各种资源值的扩展。NSXMLAdditions
- 在Xpaths上获取值的便捷方法。StringExtensions
- 向String
添加了许多改进。
AppStore
您可以用标签127标记菜单项并自动隐藏它们。还包括一款在应用内购买管理器,可以简化StoreKit交互。
核心
XUAbstract
- 一个可以被用来创建抽象方法的@noreturn
函数。XUApplicationSetup
- 读取Info.plist
文件并从中提供信息的类。您可以对其进行子类化以包含自己的设置。XUAppScopeBookmarksManager
- 存储应用范围的NSURL
书签。XUBlockThreading
- 执行块的更易用的 API。XUExceptionHandler
- 允许你在 Swift 代码中捕获和处理 Objective-C 异常的类。XUPowerAssertion
- Swift 风格的 IOKit 电源断言 API 的封装。XUPreferences
- 用于读取和写入到NSUserDefaults
的便利函数。XUString
- Swift 中的纯 C 风格字符串。可以直接访问字符等。主要用于各种转换。XUSubclassCollector
- 收集特定类的所有子类。注意,如果有包含泛型的子类,这将返回应用中使用的所有可能泛型组合。
CoreData
主要同步引擎。原来的部分作为 XUSyncEngine。相关文档可单独在这里找到。
Debug
主要用于日志功能的 XULog
。
Deserialization
XUCore 具有强大的可定制的 JSON 反序列化功能。
异常处理(仅限 OS X)
如果你在 XUApplicationSetup
上设置了 exceptionHandlerReportURL
,XUCore 将自动安装异常处理器并使用该 URL 发送崩溃报告。
Localization
提供多种本地化方法。
杂项
XUMouseTracker
- 跟踪屏幕上的鼠标移动(OS X)。XURandomGenerator
- 假随机数生成器。XUTimeUtilities
- 拓展时间四舍五入及转换为字符串的方法。
网络
XUCURLConnection
- 使用 cURL 而不是NSURLConnection
发送 HTTP 请求。XUDownloadCenter
- 包含所有网络下载需求的伞状服务,支持下载 JSON、XML 和纯文本数据,包括日志记录、cookie 支持等。XUMessageCenter
- 从服务器向应用用户发送消息。XUURLHandlingCenter
(OS X)- 处理应用打开的 URL。
正则表达式
基于 re2
(C++)的强大正则表达式实现。使用 XURegex
作为 re2
的 ObjC 包装,并在 String
上实现各种方法。与 NSRegularExpression
不同,它支持变量和更多功能。
转换器
用于 OS X 中的 XIB 文件(绑定)的值转换器。
试用(OS X)
让 XUCore 处理试用,当试用期结束时,将用户引导到 AppStore。
用户界面
XUAutocollapsingView
- 隐藏时,自动将高度约束设置为0.0
的视图,并在设置为可见时恢复。XUDockIconProgress
- 在您应用的Dock图标上显示进度。