首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSFetchRequest集谓词问题

NSFetchRequest集谓词问题
EN

Stack Overflow用户
提问于 2011-03-07 17:31:39
回答 1查看 1.7K关注 0票数 0

如果@"“then *为空,我想检查输入到谓词的值

我使用了以下代码,但它给出了错误

你能帮我修一下吗?

代码语言:javascript
复制
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];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-07 21:56:51

首先,也是最重要的,StudentName != ""不会在Objective-C中工作。如果想要查看变量是否为空字符串,则应该使用[StudentName isEqualToString:@""]

其次,您的谓词也不会起作用,尝试在LIKE中使用*通配符。我建议在fetch请求中有条件地添加一个谓词:

代码语言:javascript
复制
if ([StudentName isEqualToString:@""]) {
     [fetchRequest setPredicate:[NSPredicate 
       predicateWithFormat:@"(StudiesStudent.StudentName LIKE %@ )", StudentName]];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5217945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档