Ios 在核心数据中保存CMTime+;Xcode8+;迅捷3

Ios 在核心数据中保存CMTime+;Xcode8+;迅捷3,ios,core-data,swift3,cmtime,transformable,Ios,Core Data,Swift3,Cmtime,Transformable,我在数据模型中将两个属性(currentTime和fullTime)声明为Transformable,如下所示 如何在此属性中保存数据?我是否需要先转换为NSData?或任何其他方式?可转换需要转换为NSData。当您使用符合NSCoding协议的类型时,这种情况会自动发生。如果您不是(与CMTime一样),则不能使用可转换的,除非您通过子类化NSValueTransformer创建自己的自定义转换器 您可能会发现,只需将CMTime属性保存在核心数据中,并从中重建CMTime就更容易了。属性

我在数据模型中将两个属性(
currentTime
fullTime
)声明为
Transformable
,如下所示


如何在此属性中保存数据?我是否需要先转换为
NSData
?或任何其他方式?

可转换需要转换为
NSData
。当您使用符合
NSCoding
协议的类型时,这种情况会自动发生。如果您不是(与
CMTime
一样),则不能使用可转换的,除非您通过子类化
NSValueTransformer
创建自己的自定义转换器


您可能会发现,只需将
CMTime
属性保存在核心数据中,并从中重建
CMTime
就更容易了。属性都是核心数据知道如何处理的数字类型。

可转换属性可以有任何对象类型(
NSArray
NSDictionary
NSData
,等等)。但是,使用原语(
float
)类型或十进制(
NSDecimalNumber
)有什么问题?