我正在“行为”对象的表上执行“全选”。 “全选”发生在 initBehaviors 方法中。只要应用程序启动,并且点击“完成”按钮,就会调用 initBehaviors 方法。
这是 initBehaviors 方法中的“全选”代码。
DataController *controller = ((AppDelegate *)[[UIApplication sharedApplication] delegate]).dataController;
NSManagedObjectContext *context = controller.context;
NSFetchRequest *getBehaviors = [NSFetchRequest fetchRequestWithEntityName:@"Behavior"];
NSArray *behResults = [context executeFetchRequest:getBehaviors error:nil];
NSLog(@"Behaviors:");
NSLog(@"%@", behResults);
问题是:当应用程序第一次启动时触发代码时,我们没有得到任何结果。但是,我们通过点击“完成”按钮(正确地)获取Core Data中的所有行为。无论是否有变化,完成按钮也会触发上下文保存。
这是应用启动时触发代码时的输出:
2017-11-21 21:45:32.246 Sonicwarper[745:559533] CoreData: Failed to load optimized model at path '/var/containers/Bundle/Application/5C882488-3C85-4EA7-B036-E3B3D47F50DB/Sonicwarper.app/Sonicwarper.momd/Sonicwarper.omo'
2017-11-21 21:45:32.258 Sonicwarper[745:559533] Behaviors:
2017-11-21 21:45:32.260 Sonicwarper[745:559533] ( )
注意:我也遇到了“无法加载优化模型”的问题 - 但它似乎没有任何影响。
这是在点击“完成”按钮“
时触发代码时的输出2017-11-21 21:53:56.788 Sonicwarper[745:559533] Behaviors: 2017-11-21 21:53:56.790 Sonicwarper[745:559533] ( "<NSManagedObject: 0x156891d0> (entity: Behavior; id: 0x156d6590 <x-coredata://679EF60E-A677-440C-84E0-771EF1A6AA0D/Behavior/p1> ; data: <fault>)", "<NSManagedObject: 0x156890a0> (entity: Behavior; id: 0x156d7830 <x-coredata://679EF60E-A677-440C-84E0-771EF1A6AA0D/Behavior/p2> ; data: <fault>)" )
2017-11-21 21:53:56.791 Sonicwarper[745:559533] - Q
2017-11-21 21:53:56.791 Sonicwarper[745:559533] - W
注意:“Q”和“W”是已存在于Core Data中的2个行为的名称。