核心数据在第一次尝试时未返回结果;第二次尝试 - 相同的代码,没有数据的变化

时间:2017-11-21 13:59:14

标签: ios objective-c core-data

我正在“行为”对象的表上执行“全选”。 “全选”发生在 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个行为的名称。

0 个答案:

没有答案