2013-07-02 43 views
1

任何人都可以爲我解釋「故障」的含義嗎?什麼是「錯誤」行爲?

以下是Apple核心數據性能文檔中的「錯誤行爲」文檔。

斷裂活動行爲

焙燒故障可以是相對昂貴的過程(潛在地需要往返到持久存儲),並且可能希望避免不必要地燒製的故障。你可以在發生故障時安全地調用以下方法而不會引發它:isEqual:,hash,superclass,class,self,zone,isProxy,isKindOfClass :, isMemberOfClass:,conformsToProtocol:,respondsToSelector :, description,managedObjectContext,entity,objectID ,isInserted,isUpdated,isDeleted和isFault。

由於isEqual和hash不會導致錯誤觸發,因此通常可以將託管對象置於集合中而不會觸發錯誤。但是請注意,調用集合對象上的鍵值編碼方法可能會導致在受管理對象上調用valueForKey:,從而引發錯誤。另外,雖然描述的默認實現不會引發錯誤,但如果實現訪問對象持久屬性的自定義描述方法,則會引發錯誤。

請注意,僅僅因爲託管對象是故障,它並不一定意味着該對象的數據不在內存中 - 請參閱isFault的定義。

謝謝!

+1

你明白這是什麼意思?什麼具體沒有意義? – Wain

+0

我不明白什麼是「故障」的意思... – Jerry

+0

[核心數據編程指南](http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFaultingUniquing.html ) – Kreiri

回答

2

一般而言,fault是一種情況的描述,您可以參考某些數據,但該數據實際上不在內存中(因此它不是立即可用的,並且需要從其他地方獲取)。

因此,您有一個託管對象實例,但只能調用其上的幾個方法,而不會導致收集其他數據並將其加載到內存中。