使用存储在CoreData模型中的FetchRequests进行变量替换

Woo*_*ter 8 cocoa core-data data-modeling nspredicateeditor nsfetchrequest

我总是在代码中创建我的NSFetchRequests.现在我正在寻找Xcode GUI来构建一个获取请求并将其存储在模型中.

我正在关注Xcode文档中的一个示例.我向模型添加了一个获取请求,并且通过Modeling GUI创建的谓词是:

 firstName LIKE[c] "*SUBSTRING*"
Run Code Online (Sandbox Code Playgroud)

然后我用这两行检索该请求:

NSDictionary *substituionDictionary = [NSDictionary dictionaryWithObject:@"woody" forKey:@"SUBSTRING"];

NSFetchRequest *fetchRequest = [mom fetchRequestFromTemplateWithName:@"firstNameContains" substitutionVariables:substituionDictionary];
Run Code Online (Sandbox Code Playgroud)

生成的NSFetchRequest的NSLog输出:

(entity: Customer; predicate: (firstName LIKE[c] "*SUBSTRING*"); sortDescriptors: (null); limit: 0)
Run Code Online (Sandbox Code Playgroud)

..表示在返回存储的FetchRequest之前未替换变量.

那么,如何指定在Xcode数据建模获取请求谓词生成器GUI中输入的文本将在运行时由NSFetchRequest替换:fetchRequestFromTemplateWithName:substitutionVariables:?

谢谢!

伍迪

Bar*_*ark 6

您需要右键单击包含预期变量的获取请求谓词编辑器的行,然后从弹出窗口中选择"VARIABLE".右键单击的位置有时在Xcode编辑器中挑剔,所以我倾向于单击+/-按钮的左侧.