我正在使用核心數據並且有一個叫做Person
(它是Core Data中的實體)的NSManagedObject
的子類。 Person對象具有多個屬性(例如firstName
,lastName
等)和關係(例如friends
,coWorkers
)。其中一些屬性是可選的,而其他屬性是強制性的。確定NSManagedObject屬性是否可選
給定Person
對象如何有效地確定特定屬性或關係是可選還是強制?
我想盡量避免必須通過Person對象的每個屬性進行某種低效的循環,因爲我需要經常調用代碼,所以類似於以下僞代碼的內容將是完美的:
if ([[aPerson getProperty:@"firstName"] isOptional]) {
// do stuff
}
...但我不確定它是否可以簡單地完成。上面的僞代碼也只會檢查屬性,所以我猜測其他的東西需要在被檢查的屬性是關係的情況下完成。
我意識到,做一個循環並將所有強制屬性的名稱存儲在數組中可能更有效(然後檢查該數組是否存在屬性名稱),這就是我在做的這一刻,但不幸的是,它並沒有真正與我的代碼結構一起工作(因此需要更多的「按需」方法)。
任何幫助,將不勝感激:)
我認爲你是管理對象混亂實體寫一個函數。 「可選」僅是實體的屬性。這是在託管對象模型文件中定義的,並且一旦上下文分配給它就不能更改。如果實體具有可選關係,那麼用該實體初始化的所有被管理對象都具有該可選關係,並且永遠不會改變。您無需檢查託管對象是否存在可選關係,並且您應該知道模型中的關係。 – TechZen 2011-04-21 17:38:34