2010-05-31 49 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自动更新。