Xcode 4中的核心数据获取请求变量

时间:2011-06-07 19:03:27

标签: ios core-data

如何在Xcode 4的核心数据中为变量请求添加变量?找不到它。

4 个答案:

答案 0 :(得分:31)

从下拉列表中选择Expression,然后在替换变量前使用$输入表达式(下例中为NAME)。即使替换变量的值是一个字符串,也要确保不要将变量放在引号之间,否则替换将不起作用。

Fetch predicate with substitution variable

在你的代码中,你可以像这样引用fetch谓词(XCode 4.4及以上版本):

NSManagedObjectModel* model = [[context persistentStoreCoordinator] managedObjectModel];
NSFetchRequest* request = [model fetchRequestFromTemplateWithName:templateName
                                            substitutionVariables:@{@"NAME" : name}];
NSError* error = nil;
NSArray* results = [context executeFetchRequest:request error:&error];

答案 1 :(得分:6)

Apple已经在最新的XCode中重新推出了它。要在Core Data编辑器的Fetch Requests中使用Variables,您必须使用“expression”类型并手动输入:

data == $ DATA

(在此表达式中,$ DATA是变量)。

答案 2 :(得分:2)

如果通过变量,您的意思是将值传递给获取请求,以便您分隔请求?然后你要做的就是宣布一个NSPredicate。

这样的事情:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"name" inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(attribute == %@)", value];
[request setEntity:entity];
[request setPredicate:predicate];
NSError *error;
NSArray *results = [context executeFetchRequest:request error:&error];
[request release];

答案 3 :(得分:1)

您可能已经找到了一个解决方案,但它花了我一段时间,它可能会节省别人的时间,所以在这里:the apple documentation解释它。