如果@"“then *为空,我想检查输入到谓词的值
我使用了以下代码,但它给出了错误
你能帮我修一下吗?
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Studies" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:
@"( StudiesStudent.StudentName LIKE %@ )", ( if(StudentName != "" ) StudentName else @"*" ) ]];
NSError *error;
self.StudentList = [_context executeFetchRequest:fetchRequest error:&error];
self.title = @"patients Result";
[fetchRequest release];发布于 2011-03-07 21:56:51
首先,也是最重要的,StudentName != ""不会在Objective-C中工作。如果想要查看变量是否为空字符串,则应该使用[StudentName isEqualToString:@""]。
其次,您的谓词也不会起作用,尝试在LIKE中使用*通配符。我建议在fetch请求中有条件地添加一个谓词:
if ([StudentName isEqualToString:@""]) {
[fetchRequest setPredicate:[NSPredicate
predicateWithFormat:@"(StudiesStudent.StudentName LIKE %@ )", StudentName]];
}https://stackoverflow.com/questions/5217945
复制相似问题