将NSMeasurement或NSUnit存储在核心数据中

时间:2016-07-17 16:09:02

标签: ios core-data ios10

iOS 10引入了用于测量和单位的新类。我想在我的核心数据库中存储一个NSMeasurement或NSUnit对象,这样我就可以在我的数据库中存储不同的测量值。

这样做有好办法吗?由于我的app只使用所有可用单元的子集,理论上我可以创建单元的字符串表示,并使用switch语句在需要时从中获取实际的单元类。但这感觉过于复杂且容易出错。

2 个答案:

答案 0 :(得分:3)

这两个类都符合NSCoding,因此您可以将它们存储为"可转换的"属性。作为转换,您可以直接从/向属性读取/写入对象值,Core Data会根据需要自动在对象类型和NSData之间进行转换。您不需要对自己进行任何转换。

答案 1 :(得分:0)

归档NSUnit将增加很多存储和性能开销。因此,最好将值存储为适当的NSUnit的{​​{1}}的标量类型,并使用baseUnit在UI中显示值。