变幻莫测:CoreData 中 Transformable 类型面面俱到(三)
概述
各位似秃似不秃小码农们都知道,在苹果众多开发平台中 CoreData 无疑是那个最简洁、拥有“官方认证”且最具兼容性的数据库框架。使用它可以让我们非常方便的搭建出 App 所需要的持久存储体系。
不过,大家是否知道在 CoreData 中还存在一个 Transformable 类型,它到底是个啥?应用场景有哪些?在最新的 SwiftData 中有没有对应物?对于开发者又有哪些“见雀张罗”的撸码陷阱和最佳实践呢?
在本篇博文中,您将学到如下内容:
- 概述
- 3.4 “行不行,本大爷说了算!”
- 3.4.1 快使用自定义转换器(Transformer)
- 3.4.2 用前“报备”
- 3.4.3 修改 Transformable 字段属性
- 总结
本系列文章一共包括将近 3w 枚机智而幽默的文字、详实的大段代码示例以及海量图片,定能让小伙伴们对 Transformable 类型的“驾驭”更加胸有成竹、胜券在握!
那还等什么呢?让我们马上开始 Transformable 大冒险吧!
Let’s go!!!😉
3.4 “行不行,本大爷说了算!”
使用 UIColor 作为 Transformable 类型导致运行崩溃的根本原因在于:不是所有符合 NSObject + NSSecureCoding 的类都能直接适配 Transformable 类型,它们还必须向系统“报备”,若未经同意使用它们,在运行时“必死无疑”!
这又要分为 3 个步骤展开来好好唠唠。
3.4.1 快使用自定义转换器(Transformer)
首先,我们必须创建自己的转换器为后面的“报备”做准备:
class UIColorTransformer: NSSecureUnarchiveFromDataTransformer {override static var allowedTopLevelClasses: [AnyClass] {[UIColor.self