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

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

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

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

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

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

【问题讨论】:

    标签: iphone uipickerview core-data


    【解决方案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 自动更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多