2014-03-05 47 views
0

我想在覈心數據中建立一個模型,以便在特定時刻保存足球教練的行爲。 我所擁有的共有30種行爲分爲4類。爲足球教練的行爲設計一個核心數據模型

我想創建2個實體:

  • 會議(名稱,dateCreation) - >這是比賽
  • 行爲(nameB,類別,時間)

我認爲這種關係是一對多的關係(一個會話可以有多個行爲)。

Core Data是否正確?你能分享你的想法嗎? PS:對不起,我的英文不好!

謝謝你^ _^

+1

是的,你是正確的:一個會話可以有多個行爲。您只需在與會話相關的存儲之前將您的行爲設置爲NSSet。 – joeByDesign

+0

感謝您的回答!因此,爲了讓我的行爲成爲NSSet,我必須將行爲obj的所有實例分組嗎?有沒有辦法做到這一點? – Luca93

回答

1

是的,你在正確的線上有兩個實體和一個關係。你的名字非常通用,如果你想把它用於其他事情,這可能會很好地支持未來。

確保關係在兩個方向上都有(反轉)。

當您在Xcode中生成託管對象子類時,它將爲您添加屬性和方法。當你添加新的行爲時,只需一次添加一個。然後,當你需要它們的時候,你可以從Session得到NSSet,或者你可以爲它們查詢數據存儲(如果有很多行爲,或者只希望具有特定名稱或已知的時間段)。

+0

因此,如果我想存儲一個會話併爲每場比賽克里特島的另一個會議或許多不同的會話,我可以嗎?謝謝^ _^ – Luca93

+1

是的,每個'Session'在數據存儲中都是分開的,並且在其關係中有一組不同的'Behaviour'。 – Wain

1

更好的是我在這裏回答比評論。

一旦你正確地設置了你的CoreData,一個方法將可用於addDataObject:這可以在你的行爲數據的一個實例上使用,並且使用前面的方法將它存儲在NSSet中。

被警告,最後我檢查了一下,這個方法有問題,它不能正常工作,所以你必須重寫它。要做到這一點,在你Session.m頭創建以下方法

- (void)addDataObject:(BehaviourData *)value 
{ 
    NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.data]; 
    [tempSet addObject:value]; 
    self.data = tempSet; 
} 

self.data需要有一個NSOrderedSet您將在Session.h定義。