2012-04-23 2 views
1

У меня есть NSArray под названием namesArray.Как вставить данные из NSArrays in to coredata

Мне нужно сохранить все имена, существующие в namesArray, используя coredata.

Как достичь этого?

Нужно ли создавать любую базу данных, такую ​​как 'names.sqlite', используя менеджер sqlite?

ответ

1

Нет, вам не нужно создавать names.sqlite с помощью диспетчера. Вы должны ознакомиться с некоторыми учебными пособиями, найденными в сети, например: Here или Here.

Вам необходимо сохранить в datamodel формат valueForKey.

//Coredata saving 
self.theAppDel=[[UIApplication sharedApplication] delegate]; 
NSManagedObjectContext*context=[self.theAppDel managedObjectContext]; 
NSManagedObject*object=[NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:context]; 
NSError*error=nil; 

[object setValue:[namesArray objectAtIndex:0] forKey:@"name"]; //for saving first name 

1. Создание экземпляра вашего AppDelegate.

2. Доступ ваш Managed Object Context и Managed Object

3. Предполагая, что вы создали описание сущности с именем контактов. С подсчетом количества элементов в вашем массиве добавьте каждый объект для столбца с именем name (который я предполагаю, что вы создали).

Это короткий пример, но вы должны ознакомиться с учебниками и прочитать документацию на яблоки.

EDIT: Как упоминалось ранее, мое раннее решение добавило бы только последний элемент. Для добавления: Adding NSMutableArray in CoreData Спасибо Ondra Peterka

1

Я думаю, что ответ iNoobs не будет работать - цикл будет перезаписывать значение несколько раз (будет сохранена только фамилия). В каждом случае чтение учебников - хорошая идея. Может быть, ответ вы ищете здесь: Saving an NSMutableArray to Core Data

Кроме того ... Я знаю, что вы явно сказали «сохранить основные данные», но только в том случае - вы также можете использовать разные способы хранения, как NSUserDefaults:

[[NSUserDefaults standardUserDefaults] setObject:namesArray forKey:@"namesArray"]; 

и получить его позже с помощью:

myArray= [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"namesArray"]]; 

конечно же NSUserDefaults являются Мента использовать только для небольшого количества данных.

Удача;)

Смежные вопросы