什么是“错误”行为?

时间:2013-07-02 15:36:13

标签: ios core-data fault

有人可以为我解释“错误”的含义吗?

以下是Apple的Core Data Performance Doc中的“Faulting Behavior”文档。

  

错误行为

     

点火故障可能是一个相对昂贵的过程(可能需要往返持久存储的往返),您可能希望避免不必要地触发故障。您可以安全地在故障上调用以下方法而不会触发它:isEqual:,hash,superclass,class,self,zone,isProxy,isKindOfClass:,isMemberOfClass:,conformsToProtocol:,respondsToSelector:,description,managedObjectContext,entity,objectID ,isInserted,isUpdated,isDeleted和isFault。

     

由于isEqual和hash不会导致触发错误,因此通常可以将托管对象放置在集合中而不会触发错误。但是请注意,在集合对象上调用键值编码方法可能会导致在托管对象上调用valueForKey :,这会触发故障。此外,虽然描述的默认实现不会导致触发错误,但如果实现访问对象的持久属性的自定义描述方法,则会导致触发错误。

     

请注意,仅仅因为托管对象是一个错误,它并不一定意味着该对象的数据不在内存中 - 请参阅isFault的定义。

谢谢!

1 个答案:

答案 0 :(得分:2)

一般而言,fault是对某些数据的引用但该数据实际上不在内存中的情况的描述(因此它不是立即可用的,需要获取来自其他地方)。

因此,您有一个托管对象实例,但您只能在其上调用几个方法,而不会导致其他数据被收集并加载到内存中。