Я играю с приложением, которое использует Core Data и NSManagedObjects для заполнения UITableView. В моем приложении есть только один класс, называемый Event
. На Event
я создал следующий метод специальных экземпляров:
- (BOOL)isExpired {
return ([[self.endOn dateAtEndOfDay] timeIntervalSinceNow] < 0);
}
Я хотел бы ограничить UITableView
, который отображает объекты Event
только для Истекших событий, то есть где isExpired
возвращает YES
. Я попытался сделать это, добавив NSPredicate
в NSFetchRequest
:
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary * bindings) {return([evaluatedObject isExpired]);}];
[fetchRequest setPredicate:predicate];
но я получаю ошибку: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Problem with subpredicate BLOCKPREDICATE(0x272ac)'
***
. Означает ли это, что вы не можете использовать предикат блока с NSFetchRequest? Или я просто построил его неправильно?
Спасибо!