在模型编辑器中设置NSFetchRequest resultType无效

时间:2013-05-10 19:18:55

标签: xcode cocoa core-data

我刚刚遇到了通过Xcode 4.6.2中的模型编辑器创建的获取请求模板的问题。我尝试更改获取请求的核心数据检查器中的结果类型设置,如下图所示:

fetch request details

但是,当我在代码中加载模板时,不会反映设置:

NSFetchRequest *req = [self.managedObjectModel fetchRequestTemplateForName:@"itemIds"];
NSLog(@"Result type is %d", req.resultType);

返回 0 ,a.k.a NSManagedObjectResultType。同样,当我获得模板时,似乎没有从模型加载高级下的其他设置。我尝试了fetchRequestTemplateForName:fetchRequestFromTemplateWithName:substitutionVariables:,但都没有给出所需的结果。这是Xcode / NSManagedObjectModel中的错误还是我做错了什么?

1 个答案:

答案 0 :(得分:2)

这是Xcode附带的托管对象模型编译器中的一个错误。似乎在右侧面板中,只有" Name"和"实体"有任何影响。你正在做的是正确的,但工具已经坏了。

最接近的解决方法是更改​​代码中的结果类型。您无法修改从模型中获取的获取请求,但NSFetchRequest符合NSCopying,因此您可以复制并修改它。这种情况很糟糕,但它看起来是当前工具的最佳选择。