【问题标题】:How to insert data from NSArrays in to coredata如何将数据从 NSArrays 插入 coredata
【发布时间】:2012-05-03 23:04:58
【问题描述】:

我有一个名为namesArrayNSArray

我需要使用coredata 存储namesArray 中存在的所有名称。

我如何做到这一点?

我们是否需要使用 sqlite manager 创建像 'names.sqlite' 这样的数据库?

【问题讨论】:

    标签: iphone objective-c sqlite core-data nsmanagedobject


    【解决方案1】:

    不,您不需要使用管理器创建names.sqlite。您应该阅读网上找到的一些教程,例如:HereHere

    您基本上需要以valueForKey 格式保存在数据模型中。

       //Coredata saving
     self.theAppDel=[[UIApplication sharedApplication] delegate];
     NSManagedObjectContext*context=[self.theAppDel managedObjectContext];
     NSManagedObject*object=[NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context];
     NSError*error=nil;
    
     [object setValue:[namesArray objectAtIndex:0] forKey:@"name"]; //for saving first name
    

    1. 创建您的 appdelegate 的实例。

    2. 访问您的Managed Object ContextManaged Object

    3. 假设您创建了一个包含姓名联系人的实体描述。根据数组中的项目数,为名为 name 的列添加每个对象(我假设您已经创建了该列)。

    这是一个简短的示例,但您应该阅读教程并阅读苹果的文档。

    编辑: 正如 Ondra 提到的,我之前的解决方案将只添加最后一个元素。使用以下添加:Adding NSMutableArray in CoreData 谢谢Ondra Peterka

    【讨论】:

      【解决方案2】:

      我认为 iNoobs 的答案不起作用 - 循环会多次覆盖该值(只会保存姓氏)。在任何情况下,阅读教程都是个好主意。 也许您正在寻找的答案在这里:Saving an NSMutableArray to Core Data

      另外...我知道您明确表示“保存到核心数据”,但以防万一 - 您也可以使用不同的存储,例如 NSUserDefaults

      [[NSUserDefaults standardUserDefaults] setObject:namesArray forKey:@"namesArray"];
      

      稍后使用:

      myArray= [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"namesArray"]];
      

      当然 NSUserDefaults 只用于少量数据。

      祝你好运;)

      【讨论】:

        猜你喜欢
        • 2021-11-05
        • 1970-01-01
        • 2012-01-30
        • 2012-02-06
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 2014-01-06
        • 1970-01-01
        相关资源
        最近更新 更多