2010-06-08 65 views
3

我在讀取該設置時,瞬態屬性的值總是導致將管理對象標記爲「髒」。然而,我沒有得到的是:如果我創建NSManagedObject的子類並使用一些額外的屬性(我不需要持久化),Core Data如何知道它們以及它如何將對象標記爲髒我訪問這些?在數據模型或NSManagedObject的自定義子類中定義的瞬態屬性之間是否有區別?

同樣,它們沒有在數據模型中定義,所以核心數據並沒有真正的提示他們在那裏。

或者Core Data是否使用某種內省來分析我的自定義類並找出我在那裏的屬性?

回答

2
NSManagedObject 
/* Distinguish between changes that should and should not dirty the object for any key unknown to Core Data. 10.5 & earlier default to NO. 10.6 and later default to YES. */ 
/* Similarly, transient attributes may be individually flagged as not dirtying the object by adding +(BOOL)contextShouldIgnoreChangesFor<key> where <key> is the property name. */ 
+ (BOOL)contextShouldIgnoreUnmodeledPropertyChanges NS_AVAILABLE(10_6,3_0); 

瞬態屬性可以通過撤消/重做管理器來處理,不需要額外的屬性。

我發現核心數據的一些奇怪的行爲「髒」的製作規則:

在iOS 5設置瞬態特性在-(void)didSave化妝方面髒,但在iOS 4.3使得不是。

how to make NSManagedObjectContext dirty (hasChanges = YES) Manually

我不認爲核心數據可能會反思你的NSManagedObjects

定製子類
相關問題