Core Data と NSManagedObjects を使用して UITableView を設定するアプリで遊んでいます。私のアプリケーションには、 という名前のクラスが 1 つしかありません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 でブロック述語を使用できないということですか? それとも、不適切に構築しただけですか?
ありがとうございました!