2016-03-04 42 views
0

我有一個核心的數據類與此變種:核心數據似乎不是初始化的零

@NSManaged var tags: NSSet? 

的問題是,當類是從數據存儲,標籤變量,而不是牽強無,用空的NSSet對象初始化。

這種行爲是否正常?

我認爲這將是零。

更新和問題: 我檢查了一個核心數據屬性的行爲,它在提取後爲零。

是否有可能爲NSSet/NSOrderedSet的關係核心數據不使用零,但初始化一個空集?

回答

1

核心數據使用斷層:

documentation

從本質上講這裏所發生的是:

A managed object fault is an instance of the appropriate class, but its persistent variables are not yet initialized.

A relationship fault is a subclass of the collection class that represents the relationship.

所以,你可能有一系列的實例,但你不會知道什麼persisten值直到你訪問它。

希望這會有幫助

+0

感謝羅恩。因此,在我的情況下,我似乎必須檢查套件的長度,而不是零。而對於託管對象,我必須檢查「isFault」。這是正確的嗎? – Shay

+0

@Shay你不應該直接打電話是故障。一旦你訪問了一個管理對象的關係,該故障應該觸發並解決它。因此,計數將有助於瞭解有多少標籤。 – Ron

+0

如果您只是在提取標記之前對其進行計數,則可以使用countForFetchRequest或NSManagedObjectContext https://developer.apple.com/library/ios/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectContext_Class/index.html #// apple_ref/occ/instm/NSManagedObjectContext/countForFetchRequest:error: – Ron