想象一下一个 CoreData 实体(例如命名为
最终用户将能够使用
NSPopupButton 的
问题是:
searchEngine
)。NSManagedObjectContext
管理这个实体的一些“实例”。最终用户将能够使用
NSPopupButton
选择他的“标准搜索引擎”。NSPopupButton 的
selected object
应该绑定到 NSUserDefaults。问题是:
我知道,问题很长......但是:try{[我提供:详细信息]} ;D
1)
@try{save}
a)
如果您尝试直接将选定的“实例”保存到 NSUserDefaults 中,会出现以下内容:-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value ' (entity: searchEngine; id: 0x156f60 ; data: { url = "http://google.de/"; someAttribute = 1; name = "google"; })' of class 'searchEngine'.
b)
如果您尝试将“实例”转换为 NSData,则会出现以下内容:-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0有什么办法可以将这些实体转换为 plist 兼容的数据吗?
2)
@try{registerDefaults}通常,
registerDefaults:
方法是在+ (void)initialize
中实现的。这里的问题是,在 CoreData 从数据库加载保存的实体之前调用此方法。所以我不能为不存在的对象设置默认值,对吧?