使用 UIPickerView 建立 CoreData 关系

Posted

技术标签:

【中文标题】使用 UIPickerView 建立 CoreData 关系【英文标题】:Using a UIPickerView to make a CoreData Relationship 【发布时间】:2010-05-31 16:22:45 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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]); 

这也会通过 Core Data yourGameObject 自动更新。

【讨论】:

以上是关于使用 UIPickerView 建立 CoreData 关系的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView 的简单应用

UIPickerView的使用

尝试使用 UIScrollView 创建自定义水平 UIPickerView - 如何像在 UIPickerView 中一样淡出边缘?

UIPickerView的使用

如何使用 UIPickerView 来确定 UITextField 的值?

UIPickerview 基本使用