使用UIPickerView建立核心数据关系

时间:2010-05-31 16:22:45

标签: iphone uipickerview core-data

好的,所以我设置了一个相当简单的应用程序。

我有两个不同的CoreData实体,游戏和平台,每个实体都有一个属性:名称,它们之间有一对多的关系。

首次启动应用程序时会填充平台,并且不会因用户输入而改变平台。

我正在处理我的添加视图,让用户将新游戏添加到他们的个人数据库,每个游戏都应该从平台中选择。添加视图本身是具有静态自定义单元格的分组表视图。点击平台单元格应该将用户推进到另一个视图以选择平台。

我的想法是UIPickerView似乎是控件的逻辑选择,因为Platform列表是静态的,但我不确定如何将它与CoreData一起使用。即使我构造一个获取平台对象并提取字符串的获取请求,我该如何将新的Game对象链接到原始的Platform对象呢?

1 个答案:

答案 0 :(得分:0)

这只需要几行代码,假设您在保存数据之前实例化了Platforms对象,您应该执行以下操作:

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自动更新。