我有一个巨大的NSDictionary,有三个层次结构。
层次结构如下
- 一个主JSON包含一个Object {}
-
它在根节点上的值很少,像和,而不是数组,数组有字典,字典也有字典。
{ "id" = "123", "name" = "Hello", "title_image" = "URL" "sub_array" : [ { "id" = "123", "name" = "Hello", "title_image" = "URL" "another_dictionary":{ "abc":{ }, "abcd":{ } } }, { "id" = "123", "name" = "Hello", "title_image" = "URL" "another_dictionary":{ "abc":{ }, "abcd":{ } } } ] }
现在我很困惑,我是否应该去制作单独的NSManagedObject,或者制作一个NSManagedObject并与其他表或任何其他方法建立一些关系。
谁能告诉我,当我有一个巨大的NSDictionary(JSON从服务器,它被转换成NSDictionary),我想把它保存在Core Data我该怎么做。
谢谢。
解决方案:
id delegate_info = [UIApplication sharedApplication].delegate;
NSManagedObjectContext *context_info = [delegate_info managedObjectContext];
NSManagedObject *ManagedObject_info = [NSEntityDescription
insertNewObjectForEntityForName:@“localDBname” inManagedObjectContext:context_info];
[ManagedObject_info setValue:[[yourDictName valueForKey:@“key1”] valueForKey:@"user_email"] forKey:@“localdbkey1”];
[ManagedObject_info setValue:[yourDictName valueForKey:@“key2”] forKey:@"localdbkey2”];
[ManagedObject_info setValue:[yourDictName valueForKey:@“key3”] forKey:@"localdbkey3”];
NSError *error;
[context_info save:&error];
注意:如果一个值是一个数组或字典,它将无法工作,并在运行时崩溃。因为你将本地db键定义为nsstring。