Objective c NSFetchRequestSetPredicate问题

Objective c NSFetchRequestSetPredicate问题,objective-c,core-data,Objective C,Core Data,我想检查输入到谓词的值是否为空@“”,然后* 我使用了以下代码,但它给出了错误 你能帮我修一下吗 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Studies" inManagedObjectContext:_context

我想检查输入到谓词的值是否为空@“”,然后*

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

你能帮我修一下吗

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];

首先,也是最重要的,
StudentName!=“
在Objective-C中不起作用。如果要查看变量是否为空字符串,应使用
[StudentName IsequalString:@”“]

其次,您的谓词也不起作用,尝试将
*
通配符与
类似。我建议有条件地向fetch请求添加一个谓词:

if ([StudentName isEqualToString:@""]) {
     [fetchRequest setPredicate:[NSPredicate 
       predicateWithFormat:@"(StudiesStudent.StudentName LIKE %@ )", StudentName]];
}