TOAppSettings
NSUserDefaults
的 Realm 类对象包装类。
// Define a subclass with a list of properties
class MyAppSettings: AppSettings {
@objc dynamic var greeting = ""
}
// Automatically save to `NSUserDefaults`!
let settings = MyAppSettings.default()
settings.greeting = "Hello World!"
NSUserDefaults
自 iPhoneOS 2.0 以来一直是 iOS 开发的重要组件。虽然其 API 对于持久化数据来说非常方便,但它是相对难以处理的一个 API。除了读取和写入数据的方法描述冗长之外,跟踪键名也可能很复杂。
TOAppSettings
是一个包装类,旨在使与 NSUserDefaults
一起工作变得更加容易。它与 Realm iOS 数据库类似的机制使用 Objective-C 运行时将属性动态映射到等效的 NSUserDefaults
方法。
特性
- 自动将对象属性映射到
NSUserDefaults
。 - 支持
NSUserDefaults
最初支持的所有数据类型。 - 自动生成唯一的键名,因此不会与其他持久数据发生冲突。
- 可以使用标识符字符串保存多个不同的同一对象的副本。
- 支持在同一个开发者容器中的应用程序之间共享首选项。
- 此外,支持所有符合
NSCoding
的对象,并自动处理它们到磁盘和从磁盘的序列化。 TOAppSettings
的实例在内部缓存,因此在后续实例化调用时的开销很小。- 线程安全,就像
NSUserDefaults
本身一样。 - 用 Objective-C 编写,但也提供了一个非常 Swifty 的接口。
- 单元测试(还有更多!)
安装
手动安装
将 TOAppSettings.h
和 TOAppSettings.m
拖入您的 Xcode 项目中。
CocoaPods
pod 'TOAppSettings'
Carthage
请创建一个 Pull Request。 :)
致谢
TOAppSettings
由 Tim Oliver 创建,最初用作 iComics 组件,这是一个用于 iOS 的漫画阅读应用。
许可证
TOCropViewController 使用 MIT 许可证,请参阅 LICENSE 文件。