我有一个继承自 NSObject 的对象,我希望将其保存在 CoreData 中,我已经创建了一个“可转换”类型的属性(即“id”),因此在将项目添加到数据库时无法直接保存项目,例如:
item.idObject = object;
它会产生一个错误,我认为问题是我应该将对象转换为id,我该怎么做?
我有一个继承自 NSObject 的对象,我希望将其保存在 CoreData 中,我已经创建了一个“可转换”类型的属性(即“id”),因此在将项目添加到数据库时无法直接保存项目,例如:
item.idObject = object;
它会产生一个错误,我认为问题是我应该将对象转换为id,我该怎么做?
通过将属性设置为可转换,您走在了正确的轨道上。但是您还必须为 Core Data 可以使用的这个对象编写一个 valueTransformer。
文档中有更多内容
当你分配一个核心数据属性时,它可能只是某些类型,NSString,NSNumber 等...如果你分配一个关系,它必须是另一个 NSManagedObject 实例,如果你想将它保存为模型的一部分,你可以当然具有任何类型的瞬态属性。
所以...
@implimentation OurClass
@dynamic someProperty; // core data model property NSNumber, NSString, etc.
@dynamic someRelationship; // core data relationship some other subclass of NSManagedObject
@synthesized someOtherProperty; // can be anything, following normal Objective-C semantics.
@end