使用 MagicalRecord

MagicalRecord using

我是 CoreData 和 MR 的新手。正在尝试保存一些实体并在之后读取它们。

节省:

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);

结果我得到 "data: < fault >"

如果我添加私有上下文,例如:

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

我的应用程序因错误原因崩溃:'+entityForName: nil 不是用于搜索实体名称的合法 NSPersistentStoreCoordinator 'Events''

谁能告诉我为我的任务工作的代码

您不需要为此添加任何私有上下文(如果您出于其他原因不需要它,这是显而易见的)。 "data: <fault>" 是 iOS 的一部分。如果不直接访问对象,Core Data 不会提取对象的信息,出于性能原因,这是一个不错的选择。所以,如果你想在控制台中打印你的数组,你必须循环它并打印从数组中提取它的每个元素。

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

这应该很好用。

PS:一点建议,为您的实体使用单数名称,因为它们代表单个对象,单个 class。不要将它们视为桌子,因为它们不是。