У мене є величезний NSDictionary, що має три рівні ієрархії.
Виглядає ієрархія, як показано нижче
- Основний JSON містить об'єкт {}
Вона має небагато значень в кореневому каталозі, як і масив, який має словник, і цей словник також має словник.
{ "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.