iOS核心数据数据插入

时间:2014-06-11 07:46:17

标签: ios objective-c core-data

我有一个异步下载JSON文件的应用程序,然后它应该在Core Data中插入这些对象以进行持久存储。关于插入,从主线程做到这一点是个好主意吗?如果有数千个物体怎么办?我应该在不同的线程上进行插入吗?你能否就此事向我提供一些片段?关于在保存对象后获取对象,我是否还应该使用不同的线程?

我插入核心数据的代码是:

- (void) insertObjects:(NSArray*)objects ofEntity:(NSString *)entityName
{
    NSString *key;
    NSManagedObject *managedObject;
    NSError *error;
    for(NSDictionary *dict in objects){
        managedObject = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:_managedObjectContext];

        for(key in dict){
            [managedObject setValue:dict[key] forKey:key];
        }
    }
    [_managedObjectContext save:&error];
}

PS:对象属于同一个实体。该项目在iOS 7.0或更高版本上运行。

1 个答案:

答案 0 :(得分:0)

因为我还不能评论..

您打算支持哪些iOS版本?如果为5或更高,这可能会有助Concurrency stack

链接摘要:

  1. 您创建了一个私有concurreny类型的上下文来访问您的物理数据

  2. 基于此,您可以创建主要的concurreny类型

  3. 的上下文
  4. 除此之外,您再次使用私有并发类型存储。

  5. 不要忘记保存在每个商店,否则,数据似乎在应用程序运行时保存,但重启后它会丢失。

    是的,你想要做一个额外的线程,因为如果有很多项目,它会阻止UI。