2013-12-09 55 views
1

我正在學習如何使用Core Data。NSManagedObject集合

foo對象是bar共享類似屬性的對象的集合。 foo有一些自己的成員,其中一個是bar對象的數組。

爲了使用核心數據管理foo s,我需要僅建模foo嗎?他們是否都需要成爲NSManagedObject的子類?我也不需要撤消功能。

+0

嘗試使用關係而不是集合,它可能有所幫助。既然你這樣做了數據庫方式,那麼數據庫方式 –

回答

1

我想象你的對象圖如下:

美孚實體

  • ATTRIBUTE1
  • attribute2
  • 條(一個一對多的關係)

酒吧實體

  • attributeA
  • attributeB
  • displayOrder(另一個屬性,一個int建模的酒吧在一個假想的數組索引)
  • 富(一到一個關係)

所有實體NSManagedObjects (或一個子類)。

0

CoreData就像使用數據庫中的關係模型一樣。

定義一個表/實體/對象(在objective-c中,以表格形式定義),並用於將它與另一個使用外鍵機制相關聯,或者用於更復雜的問題使用第三個實體(稱爲關係),也就是表。

表1:Foo的
        fooID
        barID
        barID
       。
       。
        barID
        fooAttrib1
       。
       。
        fooAttribn
        barArrayAttribID

表2:用於條的
        barID
        barAttrib1
       。
       。
        barAttribn

表3:Foo的屬性/構件(即陣列PF條的)
        barArrayAttribID
        barID

在表3中barArrayAttribID從表1映射而來,並與表中的許多barID鏈接2,像數組一樣。

+0

這對於核心數據來說是一個可怕的方法。使用外鍵完全忽略了Core Data的本地關係。這樣做會使您的代碼比需要的複雜得多。核心數據的API與關係型數據庫非常不同,將其視爲關係型數據庫是一種採取簡單事情並使其變得困難的好方法。 –