TheDistanceCore
利用 The Distance 的便捷函数更快地开发。
要求
- iOS 8.0+
- Xcode 7.3
- Swift 2.2
安装
由于它减少了应用开发过程中的构建时间,因此 Carthage 是首选的依赖关系管理器。TheDistanceCore 已为 Carthage 构建过。将以下内容添加到 cartfile 中并运行:
github "TheDistance/TheDistanceCore"
carthage update TheDistanceCore
根据 Carthage 指示将框架添加到您的项目中。
特性
减少样板代码有助于我们更快地开发功能,并确保它们在平台更新后仍然无错,这样我们就不会忘记难以处理的边缘情况。
TheDistanceCore 包含简单的扩展和可重用类,这些类在多个项目中用到。该项目旨在包含非常通用的功能小块。更具体或依赖其他框架的代码不应包含在此处。
完整的文档可在我们的 GitHub 页面上找到:完整文档。
功能包括
- 视差滚动:基于
UIScrollView
的内容偏移实现“视差滚动”的标准协议。 - Storyboard 加载器:Storyboard 很容易变得庞大且加载缓慢。通常可以将 Storyboard 拆分为相关的部分,但如果在整个应用程序中管理这些部分,可能会很混乱。
StoryboardLoader
协议通过允许您为 Storyboard 和 ViewController 定义枚举,并使用StoryboardLoader.instantiateViewControllerWithIdentifier(_:)
实例化它们,从而简化这一过程。 - 纯 Swift 键值观察:
NSObject
实现了一个名为methodSignatureForSelector:
的方法,该方法将字符串转换为方法。纯 Swift 类没有这个方法,因此不能天生执行 KVO 或观察NSNotificationCenter
的帖子。Observer
、ObjectObserver
和NotificationObserver
解决了这个问题。 - NSLayoutConstraints:默认的
NSLayoutConstraint
构造函数很清楚,但在创建标准约束时可能很繁琐。constraintsToSize(...)
和constraintsToAlign(...)
简化了程序性的约束创建过程。还提供了其他方便的初始化器。 - 请求缓存控制:不是所有的 API 都在带有
if-modified-since
标头的请求中以 304 未修改状态响应。在相同的网络请求之间强制执行固定的时间限制可能很有用。RequestCache
协议简化了检查自上次成功请求后的时间间隔。 - 扩展框架:API 限于适合扩展的框架版本。
其他功能包括
- 来自网络和位置操作的友好
NSError
。 - 使用
.map({ ... })
创建 Swift Dictionary 的更简洁语法。 - 简化了移除空格后的字符串的简写语法。
- 为 Google Chrome 或 Safari 简化了 URL 打开。
- 默认使用比较运算符进行日期比较。
- 标准设备依赖的旋转(iPhone 和 tablets 为
.AllButUpsideDown
,iPhone 锁定为纵向) CGRect
、UIEdgeInsets
常见计算。
通信
- 如果您发现了一个错误,请打开一个 issue。
- 如果您有功能请求,请打开一个 issue。
- 如果您想要贡献,请提交一个 pull request。
- 如果您想询问一个一般问题,请通过电子邮件发送至 [email protected]。