1

Apple 在 NSFetchedPropertyDescription 类参考中说:

但是请注意,与播放列表不同,获取的属性是静态的——它不会随着目标实体中的对象的变化而动态更新自身。

很好,但这到底是什么意思:静态属性?不在目标实体更改中动态更新?

有人可以解释一下吗?

我想到的是一个获取的属性是用于弱引用的。喜欢:播放列表可能引用歌曲,但播放列表并不“拥有”它们。如果播放列表被删除,则歌曲永远不会因此而被删除。此外,歌曲没有对播放列表的反向引用,他们甚至不必知道它存在。

好的,所以如果一首歌被删除,播放列表不会以任何方式通知?或者苹果想告诉我什么?

4

1 回答 1

2

本质上,这意味着您必须每次手动更新获取的结果才能接收源对象的最新更改。

我刚刚查阅了您引用的文档。引用后的下一段应该清楚:

获取属性的效果类似于您自己执行获取请求并将结果放置在瞬态属性中,尽管框架管理细节。特别是,一个获取的属性在被请求之前不会被获取,然后结果会被缓存,直到对象变成一个故障。您使用 refreshObject:mergeChanges: (NSManagedObjectContext) 手动刷新属性——这会导致在下次触发对象故障时再次执行与该属性关联的获取请求。

于 2010-01-17T13:35:18.763 回答