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