2010-03-10 73 views
1

我教過自己的Obj-C,並且一直在自學Cocoa,但是在我的程序中添加Core Data給我帶來了巨大的麻煩,這要感謝我需要廣泛的定製邏輯。這裏有幾個令我瘋狂的問題。NSManagedObject可以擁有另一個屬性嗎?

  1. 如果我想託管對象擁有另一個託管對象,該怎麼辦?看起來,如果我給它一個多對多的關係,擁有的對象將被不同的主人共享,但我希望每個擁有者擁有自己的對象。

  2. 如果我繼承了NSManagedObject,我可以簡單地調用Array控制器來刪除或複製ManagedObject的實例,並假設這些實例將被轉換爲Core Data模型?

  3. 如果我想以編程方式編輯ManagedObject的屬性,我可以逃脫僅僅KVC調用數組控制器?這是什麼所有這些談論NSPredicate從NSManagedDataStoreDrivingMeCrazy的NSManagedObjectContext NSFetchRequest?我可以創建一個NSFetchRequest來過濾當前在表視圖中選擇的對象的關係嗎?

  4. 一旦我使用獲取請求獲取一組對象,我該如何去查詢它們的關係?這需要整個其他的FetchRequest,Predicate等嗎?不是核心數據應該更容易?我錯過了什麼嗎?

回答

2
  1. 實體是相似的一類 - 這是爲後面將要實例化的管理對象的藍圖。每個管理對象都有自己的屬性和關係來配置。

  2. 您可以肯定地插入和刪除管理對象。你可能需要做一些代碼來支持複製,但我不確定。

  3. 是的,被管理對象的屬性(屬性和關係)支持KVC(以及KVO和綁定)。

  4. 只需使用您在模型中定義的關係名稱(不需要額外的讀取或邏輯)即可訪問對象或對象集。

相關問題