【问题标题】:Store NSMeasurement or NSUnit in Core Data将 NSMeasurement 或 NSUnit 存储在 Core Data 中
【发布时间】:2016-11-20 06:22:27
【问题描述】:

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

有什么好办法吗?由于我的应用程序只会使用所有可用单位的子集,因此理论上我可以创建单位的字符串表示形式,并在需要时使用 switch 语句从中获取实际的单位类。但这感觉过于复杂且容易出错。

【问题讨论】:

    标签: ios core-data ios10


    【解决方案1】:

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

    【讨论】:

    • 嗯,这比预期的要容易。我不小心将它设置为“二进制数据”而不是“可转换”。谢谢!
    【解决方案2】:

    归档NSUnit 会增加大量存储和性能开销。因此,最好将值存储为适当的NSUnitbaseUnit 的标量类型,并使用NSMeasurementFormatter 在UI 中显示值。

    【讨论】:

      猜你喜欢
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多