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