Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS核心数据插入_Ios_Objective C_Core Data - Fatal编程技术网

iOS核心数据插入

iOS核心数据插入,ios,objective-c,core-data,Ios,Objective C,Core Data,我有一个应用程序,它异步下载一个JSON文件,然后将这些对象插入到核心数据中进行持久存储。关于插入,从主线程开始插入是一个好主意吗?如果有成千上万的物体呢?我应该在不同的螺纹上插入吗?你能给我一些关于这件事的片段吗?关于在保存对象后获取它们,我是否也应该使用不同的线程 我插入核心数据的代码是: - (void) insertObjects:(NSArray*)objects ofEntity:(NSString *)entityName { NSString *key; NSMa

我有一个应用程序,它异步下载一个JSON文件,然后将这些对象插入到核心数据中进行持久存储。关于插入,从主线程开始插入是一个好主意吗?如果有成千上万的物体呢?我应该在不同的螺纹上插入吗?你能给我一些关于这件事的片段吗?关于在保存对象后获取它们,我是否也应该使用不同的线程

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

- (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或更高版本上运行。

因为我还不能发表评论

您计划支持哪些iOS版本?如果是5或更高,这可能会有所帮助

链接摘要:

创建私有concurreny类型的上下文以访问物理数据

在此基础上创建一个主concurreny类型的上下文

除此之外,您还可以再次使用私有并发类型存储

不要忘记在每个商店中保存,否则,数据似乎在应用程序运行时保存,但在重新启动后丢失


是的,您需要一个额外的线程来执行此操作,因为如果项目太多,它会阻塞UI。

您可以始终使用辅助上下文进行获取。对于少量的数据,这是不必要的,但也不会造成伤害。