想象一个CoreData 实体(例如命名的searchEngine
)。
NSManagedObjectContext
管理该实体的一些“实例”。
最终用户将能够"standard searchEngine"
使用NSPopupButton
.
NSPopupButtonselected object
应该绑定到 NSUserDefaults。
问题:
1)
@try{保存}
a)
如果您尝试将选定的“实例”直接保存到 NSUserDefaults ,则会出现如下内容:-[NSUserDefaults setObject:forKey:]: 尝试插入非属性值 ' (entity: searchEngine; id: 0x156f60 ; data: { 网址=“ http://google.de/ ”; 一些属性 = 1; 名称=“谷歌”; })' 的类 'searchEngine'。
b)
如果您尝试将“实例”转换为 NSData,则会出现以下情况:-[searchEngine encodeWithCoder:]:无法识别的选择器发送到实例 0x1a25b0那么知道如何在与 plist 兼容的数据中获取这些实体吗?
2)
@try{registerDefaults}通常该
registerDefaults:
方法在+ (void)initialize
. 这里的问题是在CoreData从他的数据库加载保存的实体之前调用了这个方法。所以我不能将默认值设置为不存在的对象,对吧?
我知道,很长的问题......但是:try{[me provide:details]} ;D