如何在Xcode 4的核心数据中为变量请求添加变量?找不到它。
答案 0 :(得分:31)
从下拉列表中选择Expression
,然后在替换变量前使用$
输入表达式(下例中为NAME
)。即使替换变量的值是一个字符串,也要确保不要将变量放在引号之间,否则替换将不起作用。
在你的代码中,你可以像这样引用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)
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解释它。