/ / Як зберегти NSDictionary в CoreData, використовуючи NSManagedObject? - ios, json, core-data, словник

Як зберегти NSDictionary в CoreData, використовуючи NSManagedObject? - ios, json, core-data, словник

У мене є величезний NSDictionary, що має три рівні ієрархії.

Виглядає ієрархія, як показано нижче

  1. Основний JSON містить об'єкт {}
  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, або зробити ONE NSManagedObject і встановлювати зв'язки з іншими таблицями або будь-якими іншими програмами.

Чи можна сказати мені, що мені робити, коли у мене є величезний NSDictionary (JSON з Сервера, який перетворюється в NSDictionary), і я хочу зберегти це в Core Data.

Дякую.

Відповіді:

0 для відповіді № 1

Рішення:

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.