使用 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 关系的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 UIScrollView 创建自定义水平 UIPickerView - 如何像在 UIPickerView 中一样淡出边缘?