Это очень просто сделать.
Первым делом нужно подключить Core Data в класс, в котором вы собираетесь что-либо реализовать с использованием Core Data.
Делается это так:
-(NSManagedObjectContext *)managedObjectContext{
NSManagedObjectContext *context = nil;
id delegate = [[UIApplication sharedApplication]delegate];
if ([delegate performSelector:@selector(managedObjectContext)]) {
context = [delegate managedObjectContext];
}
return context;
}
Мы используем тут класс AppDelegate, потому что Core Data инициализируется именно там.
Предположим, что у нас есть сущность "Human", в которой есть три поля: firstName, lastName и phoneNumber.
Запись этих данных в CoreData будет выглядеть так:
NSManagedObjectContext *context = [self managedObjectContext];
Humans *newHuman = [NSEntityDescription insertNewObjectForEntityForName:@"Humans"
inManagedObjectContext:[self managedObjectContext]];
if (newHuman != nil) {
newHuman.firstName = self.firstNameField.text;
newHuman.lasteName = self.lastNameField.text;
newHuman.phoneNamber = self.phoneNumberField.text;
}
NSError *savingError = nil;
if (![context save:&savingError]) {
NSLog(@"Eroor");
}
Получение данных из CoreData будет выглядеть так:
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Humans" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSMutableArray *array = [context executeFetchRequest:fetchRequest error:nil]; //Массив можно определить и в другом месте
NSManagedObject *newCell = [self.array objectAtIndex:0]; //Тут надо указать какой-либо индекс (обычно в tableview используется indexPatch.row). Можно так же быстрым перебором получить все.
//И записываем в переменные
NSString *name = [newCell valueForKey:@"firstName"];
NSString *lastName = [newCell valueForKey:@"lasteName"];
NSString *phoneNum = [newCell valueForKey:@"phoneNamber"];
Вот так все просто))