2010-05-31 77 views
0

好吧,我有一個相當簡單的應用程序設置。使用UIPickerView創建CoreData關係

我有兩個不同的CoreData實體,遊戲和平臺,每個都有一個屬性:name,並且它們之間有一對多的關係。

第一次啓動應用程序時會安裝平臺,並且不會因用戶輸入而改變。

我正在處理我的添加視圖,以便讓用戶將新遊戲添加到其個人數據庫中,並且每個遊戲都應該從平臺中進行選擇。添加視圖本身是一個靜態自定義單元格的分組表格視圖。點擊平臺單元應該將用戶推到另一個視圖來選擇平臺。

我的想法是,UIPickerView似乎是控制的合理選擇,因爲平臺列表是靜態的,但我不確定如何將它與CoreData一起使用。即使我構造一個獲取Platform對象並提取字符串的獲取請求,我如何去將新的Game對象連接到原始的Platform對象?

回答

0

這僅需要幾行代碼,假設只保存數據之前實例化對象的平臺,你應該這樣做:

Platforms *newPlatform = (Platforms *) [NSEntityDescription insertNewObjectForEntityForName:@"Platforms" inManagedObjectContext:self.managedObjectContext]; 
[newPlatform setValue:@"yourPlatformName" forKey:@"name"]; 
[newPlatform setValue:yourGameObject forKey:@"games"]; 

NSError *error; 
if (![[self managedObjectContext] save:&error]) { 
    // Handle error 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
} 

這也通過核心數據yourGameObject自動更新。