我刚刚遇到了通过Xcode 4.6.2中的模型编辑器创建的获取请求模板的问题。我尝试更改获取请求的核心数据检查器中的结果类型设置,如下图所示:
但是,当我在代码中加载模板时,不会反映设置:
NSFetchRequest *req = [self.managedObjectModel fetchRequestTemplateForName:@"itemIds"];
NSLog(@"Result type is %d", req.resultType);
返回 0 ,a.k.a NSManagedObjectResultType
。同样,当我获得模板时,似乎没有从模型加载高级下的其他设置。我尝试了fetchRequestTemplateForName:
和fetchRequestFromTemplateWithName:substitutionVariables:
,但都没有给出所需的结果。这是Xcode / NSManagedObjectModel
中的错误还是我做错了什么?
答案 0 :(得分:2)
这是Xcode附带的托管对象模型编译器中的一个错误。似乎在右侧面板中,只有" Name"和"实体"有任何影响。你正在做的是正确的,但工具已经坏了。
最接近的解决方法是更改代码中的结果类型。您无法修改从模型中获取的获取请求,但NSFetchRequest
符合NSCopying
,因此您可以复制并修改它。这种情况很糟糕,但它看起来是当前工具的最佳选择。