2016-08-17 2 views
0

Я новичок в CoreData и MR. Попытка сохранить некоторые объекты и прочитать их после.MagicalRecord с использованием

Экономия:

Events *newEvent = [Events MR_createEntity]; 
newEvent.title = @"qwe"; 
newEvent.date = [NSDate date]; 
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError * _Nullable error) {}]; 

чтение:

NSMutableArray *events = [NSMutableArray arrayWithArray:[Events MR_findAll]]; 
NSLog(@"%@",events); 

в результате я получаю "данные: < ошибка>"

если добавить частный контекст как:

NSManagedObjectContext *context = [NSManagedObjectContext MR_newPrivateQueueContext]; 
NSMutableArray *events = [NSMutableArray arrayWithArray:[Events MR_findAllInContext:context]]; 

моего приложение падает с причиной ошибки: «+ entityForName: ноль не является юридическим NSPersistentStoreCoordinator для поиска названия объекта„События“»

Может кто-то показать мне код работает для моей задачи

ответ

0

Вам не нужно добавьте какой-либо частный контекст для этого (если вам это не нужно по другим причинам, очевидно). "data: <fault>" является частью iOS. Core Data не извлекает информацию об объекте, если к нему напрямую не обращаются, это хороший выбор по соображениям производительности. Итак, если вы хотите напечатать в консоли свой массив, вам нужно его циклически и распечатать каждый отдельный элемент, извлекая его из массива.

for (Event *event in [Events MR_findAll]) { 
    NSLog(@"Event name : %@", event.name) 
} 

Это должно работать хорошо.

PS: Небольшой совет, использует уникальные имена для ваших объектов, потому что они представляют собой один объект, один класс. Не думайте о них как о таблицах, потому что это не так.

+0

Спасибо за пояснения, но этот код все еще выводит ошибки данных, тем не менее я могу распечатать свойства событий в этом цикле – sedq

+0

@sedq yea, я отредактировал код :) –

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