Я играю с приложением, которое использует 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?Или я просто неправильно его сконструировал?
Спасибо!