如何使用NSManagedObject将NSDictionary保存到CoreData



我有一个巨大的NSDictionary,有三个层次结构。

层次结构如下

  1. 一个主JSON包含一个Object {}
  2. 它在根节点上的值很少,像和,而不是数组,数组有字典,字典也有字典。

    {
     "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。

最新更新