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

但是,当我在代码中加载模板时,没有反映这些设置:
NSFetchRequest *req = [self.managedObjectModel fetchRequestTemplateForName:@"itemIds"];
NSLog(@"Result type is %d", req.resultType);返回,a.k.a NSManagedObjectResultType。同样,当我获得模板时,Advanced下的其他设置似乎不会从模型中加载。我尝试了fetchRequestTemplateForName:和fetchRequestFromTemplateWithName:substitutionVariables:,但它们都没有给出预期的结果。这是Xcode/NSManagedObjectModel中的一个bug,还是我做错了什么?
发布于 2013-05-10 20:43:33
这是Xcode附带的托管对象模型编译器中的一个bug。在正确的面板中,似乎只有“名称”和“实体”才有任何效果。你所做的是正确的,但工具坏了。
最接近的解决方法是在代码中更改结果类型。您不能修改从模型中获得的获取请求,但是NSFetchRequest符合NSCopying,所以您可以复制并修改它。这种情况很糟糕,但现在的工具似乎是最好的选择。
https://stackoverflow.com/questions/16489367
复制相似问题