【发布时间】:2011-03-26 15:54:41
【问题描述】:
我有一个 NSManagedObject 子类,在 NSData 属性 (imageData) 中有一些图像数据,它会自动持久化。从网络加载数据后,我还设置了一个自定义 NSImage 属性 (image),其中包含从数据创建的图像。
问题是,如果对象有问题,当我访问 image 属性时,awakeFromFetch 不会被调用,因为它不是由 Core Data 处理的。我当然可以覆盖image 访问器并确保已加载属性(通过访问imageData),但如果有一种方法可以正常调用awakeFromFetch,那就太好了。有什么建议吗?
【问题讨论】:
-
您可能想稍微扩展一下这个问题,因为它有点不清楚。
awakeFromFetch不会因为您访问属性而被调用。每当您将fetchAsFaults设置为 NO 时调用它。 -
@TechZen:据我所知,
awakeFromFetch会在我访问时调用,例如,imageData属性。还是我错了? -
@TechZen:
fetchAsFaults是什么? -
对不起,我想不到,它是 NSFetchRequest 中的
returnsObjectsAsFaults。awakeFromFetch应该在获取对象时调用。简单地访问一个属性不应该触发它。不知道发生了什么。 -
@TechZen:谢谢,
setReturnsObjectsAsFaults有效。它仍然不理想。我希望在访问派生(图像)属性时触发故障,但不确定最干净的方法是什么。
标签: objective-c cocoa cocoa-touch core-data nsmanagedobject