带有非托管属性的awakeFromFetch

时间:2011-03-26 15:54:41

标签: objective-c cocoa cocoa-touch core-data nsmanagedobject

我有一个NSManagedObject子类,NSData属性(imageData)中包含一些图像数据,这些数据会自动保留。从网络加载数据后,我还设置了一个自定义NSImage属性(image),其中包含从数据创建的图像。

问题在于,如果对象是错误,则在访问awakeFromFetch属性时image ,因为它不是由Core Data处理的。我当然可以覆盖image访问器并确保加载属性(通过访问imageData)但如果有一种方法可以正常调用awakeFromFetch,那将会很好。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

根据TechZen的建议,我现在执行获取请求,returnsObjectsAsFaults设置为NO。每次获取对象时从高速缓存中提取所有数据当然不是理想的,但在我的情况下,我总是立即使用数据,因此它是可以接受的。

答案 1 :(得分:0)

您似乎想要做两件相互矛盾的事情,您希望主要实体保持错误但能够访问其属性。你不能这样做。根据定义,错误没有属性/属性,因为它只是对象图中的占位符。如果您希望主对象保持故障,则应将UIImage移动到其自己的实体并将其链接到主对象。然后,您应该能够遍历对象图以获取UIImage,而不会触发加载主对象的错误占位符。