Jes*_*nch 15 core-data objective-c xcode4
在Xcode 3.X中,您应该右键单击获取请求模板的谓词编辑器中的空白,以指定变量输入而不是硬编码谓词.
XCode 4在哪里?我已经选择了,右键单击,选项单击等,无法弄清楚....

Tec*_*Zen 18
我不认为X4有变量了.
相反,我认为您必须选择一个表达式,然后提供表单的变量$VARNAME.
例如,给定和Alpha具有属性的实体aString,我创建了bobFetch一个表达式为的获取请求模板aString == $TESTVAR.
Alpha *a=[NSEntityDescription insertNewObjectForEntityForName:@"Alpha" inManagedObjectContext:self.moc];
a.aString=@"steve";
[self saveContext];
NSDictionary *subVars=[NSDictionary dictionaryWithObject:@"steve" forKey:@"TESTVAR"];
NSFetchRequest *fetchRequest = [self.managedObjectModel fetchRequestFromTemplateWithName:@"bobRequest" substitutionVariables:subVars];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Alpha" inManagedObjectContext:self.moc];
[fetchRequest setEntity:entity];
Run Code Online (Sandbox Code Playgroud)
如果记录fetchRequest报告:
<NSFetchRequest: 0x4d17480> (entity: Alpha; predicate: (aString == "steve"); sortDescriptors: ((null)); type: NSManagedObjectResultType; )
Run Code Online (Sandbox Code Playgroud)
......然后可以正常使用.
NSError *error = nil;
NSArray *fetchedObjects = [self.moc executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
NSLog(@"fetch error = %@",error);
}
NSLog(@"fetchObjects = %@",fetchedObjects);
Run Code Online (Sandbox Code Playgroud)
对于图形环境来说有点笨拙但是有效.
sma*_*ice 11
这已经在Xcode 4中进行了调整.为了使用替换变量,你需要从弹出菜单中选择"Expression"(即代替属性名称),你可以输入如下的等价物: name == $SEARCH_NAME
如果您只是在每个属性的字段中输入$ VARIABLE值,您将得到错误的结果.实际上,某些属性不允许您强制输入值的Date属性.
当然,您可以使用多个变量.
然后就像执行获取请求一样:
NSString *searchName = @"Mr Squiggle";
NSDictionary *subs = [NSDictionary dictionaryWithObject:searchName forKey:@"SEARCH_NAME"];
NSManagedObjectModel *model = [self managedObjectModel];
NSFetchRequest *req = [model fetchRequestFromTemplateWithName:@"trainerByName" substitutionVariables:subs];
NSError *error = nil;
NSArray *results = [[self managedObjectContext] executeFetchRequest:req error:&error];
NSLog(@"Found %ld record.", [results count]);
Run Code Online (Sandbox Code Playgroud)
请注意,您也可以取消弹出属性,只需单击编辑器右上角的按钮(看起来就像默认网格视图按钮旁边的线条),然后立即输入您的表达式.这是查看日期等内容如何翻译的好方法.
| 归档时间: |
|
| 查看次数: |
6728 次 |
| 最近记录: |