3

.localConcerts取得したプロパティ (基本的には完全な . セットのサブセット) を持つ Artist オブジェクトがありますconcertsが、NSFetchedResultsController 述語内でそのプロパティを使用できますか?

これが私が試していることです:

NSFetchRequest *request = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Artist" inManagedObjectContext:context];
[request setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"localConcerts.@count > 0"];
[request setPredicate:predicate];

fetchedResultsController = [[NSFetchedResultsController alloc]
                            initWithFetchRequest:request
                            managedObjectContext:context
                            sectionNameKeyPath:nil
                            cacheName:nil];

しかし、私は得ています:

'keypath localConcerts not found in entity <NSSQLEntity Artist id=1>'

何か不足していますか、それとも取得したプロパティを述語内で使用できないのでしょうか?

4

1 に答える 1

6

データベース構造にある属性を使用してのみフィルタリングNSPredicateできるようです (これは理にかなっています)。私の場合、サブクエリを使用するとうまくいきました:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(shows, $show, $show.distance < %@).@count > 0", [SWDataManager sharedManager].localFilterDistance];

NSPredicate でサブクエリを実行できるとは思いもしませんでした。クレジットは@kyleveに送られます。

于 2011-06-23T05:39:22.237 に答える