iOS 10引入了用于测量和单位的新类。我想在我的核心数据库中存储一个NSMeasurement或NSUnit对象,这样我就可以在我的数据库中存储不同的测量值。
这样做有好办法吗?由于我的app只使用所有可用单元的子集,理论上我可以创建单元的字符串表示,并使用switch语句在需要时从中获取实际的单元类。但这感觉过于复杂且容易出错。
答案 0 :(得分:3)
这两个类都符合NSCoding
,因此您可以将它们存储为"可转换的"属性。作为转换,您可以直接从/向属性读取/写入对象值,Core Data会根据需要自动在对象类型和NSData
之间进行转换。您不需要对自己进行任何转换。
答案 1 :(得分:0)
归档NSUnit
将增加很多存储和性能开销。因此,最好将值存储为适当的NSUnit
的{{1}}的标量类型,并使用baseUnit
在UI中显示值。