Прежде всего, StudentName != ""
не будет работать в Objective-C.Вы должны использовать [StudentName isEqualToString:@""]
, если хотите узнать, является ли ваша переменная пустой строкой.
Во-вторых, ваш предикат тоже не будет работать, пытаясь использовать подстановочный знак *
с LIKE
,Я бы предложил условно добавить предикат в запрос на выборку:
if ([StudentName isEqualToString:@""]) {
[fetchRequest setPredicate:[NSPredicate
predicateWithFormat:@"(StudiesStudent.StudentName LIKE %@ )", StudentName]];
}