質問

Could anyone please explain the meaning of "fault" for me?

Here is the documentation of "Faulting Behavior" from Core Data Performance Doc by Apple.

Faulting Behavior

Firing faults can be a comparatively expensive process (potentially requiring a round trip to the persistent store), and you may wish to avoid unnecessarily firing a fault. You can safely invoke the following methods on a fault without causing it to fire: isEqual:, hash, superclass, class, self, zone, isProxy,isKindOfClass:, isMemberOfClass:, conformsToProtocol:, respondsToSelector:, description, managedObjectContext, entity, objectID, isInserted, isUpdated, isDeleted, and isFault.

Since isEqual and hash do not cause a fault to fire, managed objects can typically be placed in collections without firing a fault. Note, however, that invoking key-value coding methods on the collection object might in turn result in an invocation of valueForKey: on a managed object, which would fire a fault. In addition, although the default implementation of description does not cause a fault to fire, if you implement a custom description method that accesses the object’s persistent properties, this will cause a fault to fire.

Note that just because a managed object is a fault, it does not necessarily mean that the data for the object are not in memory—see the definition for isFault.

Thank you!!

役に立ちましたか?

解決

In general terms, a fault is a description of the situation where you have a reference to some data but that data isn't actually in memory (so it isn't immediately available and will need to be fetched from somewhere else).

So, you have a managed object instance, but you can only call a few methods on it without causing additional data to be collected and loaded into memory.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top