将记录添加到托管对象的最佳方法是什么?

时间:2014-08-03 06:58:59

标签: ios json core-data

我想使用JSON文件发送应用数据更新。数据是托管对象。

然而:

  1. 我不想覆盖现有数据(可能包括用户生成的记录和修改),

  2. 我希望这个操作尽可能快(没有双关语......我还在Obj-C中)。

  3. 有人能指出我正确的方向吗?

    这就是我现在启动应用的方式:

    NSError* err = nil;
        NSArray *jsonArray = [[NSArray alloc] init];
        NSString* dataPath = [[NSBundle mainBundle] pathForResource:@"Words" ofType:@"json"];
        jsonArray = [NSJSONSerialization JSONObjectWithData:[NSData dataWithContentsOfFile:dataPath]
                                                  options:kNilOptions
                                                    error:&err];
        NSManagedObjectContext *context = [self managedObjectContext];
    
        [jsonArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            WordEntity *word = [NSEntityDescription
                                insertNewObjectForEntityForName:@"WordEntity"
                                inManagedObjectContext:context];
    
            word.greekText = [obj objectForKey:@"greektext"];
            word.englishText = [obj objectForKey:@"englishtext"];
          word.uid = [NSString stringWithFormat:@"%@", [obj objectForKey:@"uid"]];
            word.category = [obj valueForKey:@"category"];
    
    
            NSError *error;
            if (![context save:&error]) {
                NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
            }
        }];
    }
    

    感谢您的帮助..

0 个答案:

没有答案