1

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

获取请求详细信息

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

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

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

4

1 回答 1

2

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

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

于 2013-05-10T20:43:33.193 回答