想象一下CoreData实体(例如名为searchEngine
)。
NSManagedObjectContext
管理此实体的一些“实例”。
最终用户将能够选择他的"standard searchEngine"
与NSPopupButton
。
NSPopupButton的selected object
应绑定到NSUserDefaults。
问题:将核心数据实体保存在NSUserDefaults中
1)
@try {}保存
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从他的数据库加载保存的实体之前调用这个方法。所以我不能将默认设置为不存在的对象,对吧?
我知道,长期的问题... ...但:尝试{[我提供:详细信息]}; d
Mmh的。你知道为什么`array!= nil`但是[array count] <0` ...它不想工作... – papr 2009-02-04 20:12:07
如果array!= nil那么没有错误,但也可能没有记录返回([数组计数] == 0)...但是,由于计数消息返回NSUInteger类型,[数组计数] <0可能不会发生。编译器很可能会剥夺任何此类测试([数组数量] <0)。 – 2009-02-04 20:33:44