Xcode 在模型编辑器中设置NSFetchRequestResultType无效

Xcode 在模型编辑器中设置NSFetchRequestResultType无效,xcode,cocoa,core-data,Xcode,Cocoa,Core Data,我刚刚在Xcode 4.6.2中遇到了通过模型编辑器创建的获取请求模板的问题。我试图更改获取请求的核心数据检查器中的结果类型设置,如下图所示: 但是,在代码中加载模板时不会反映设置: NSFetchRequest *req = [self.managedObjectModel fetchRequestTemplateForName:@"itemIds"]; NSLog(@"Result type is %d", req.resultType); 返回0,也称为NSManagedObjectR

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

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

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

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

这是Xcode附带的托管对象模型编译器中的错误。在右边的面板中,似乎只有“名称”和“实体”有任何效果。你所做的是正确的,但是工具坏了


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

我提交了一个bug,它也在上提供。谢谢,我会将问题保留一段时间,以防其他人想插话。同时,我也会贴一个雷达。