これが重複している場合はお詫びします。20分間の検索では、この正確な状況または解決策は得られませんでした。
XClass、、、の3つのクラスを持つCoreDataスタックがYClassありZClassます。XClassと1対多の関係がありYClassます。YClassと1対多の関係がありZClassます。
のインスタンスを使用して、少なくとも1つに少なくとも1つNSFetchedResultsControllerのインスタンスがあるすべてのインスタンスをフェッチしようとしています。XClassYClassZClass
私の述語は次のように定義されています。
// ...stuff
NSFetchRequest * fetchRequest = [NSFetchRequest new];
NSEntityDescription * entity = [NSEntityDescription entityForName:NSStringFromClass([XClass class])
inManagedObjectContext:managedObjectContext];
fetchRequest.entity = entity;
fetchRequest.predicate =
[NSPredicate predicateWithFormat:@"0 < SUBQUERY(yObjects, $y, $y.zObjects.@count > 0).@count"];
// ..instantiate NSFetchedResultsController and perform fetch
これにより、次のメッセージで致命的な例外が発生します。Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Keypath containing KVC aggregate where there shouldn't be one; failed to handle $y.zObjects.@count'
YObject他の場所では、述語を使用してインスタンスを正常にフェッチしました[NSPredicate predicateWithFormat:@"zObjects.@count > 0"];
誰かが私が間違っていることを指摘できますか?どうもありがとうございました。