0

さまざまな理由で(最後に要約されています)、NSFetchedResultsControllerいくつかを返すためにを使用して実験していNSManagedObjectsます。

具体的には、aには、コアデータリレーションシップカーを使用してモデル化されたPerson多くのがあります。self.carsと同じ車を返すためCarsに別のメソッドを追加したいのですが、FRCを使用しています。Person

私は私ので基本的なエラーを犯していると思いますNSPredicate。これは、次の場所でのみ車を見つけるように設計されていますcar.person == self

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Car"];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateAdded" ascending:YES];


 NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
   [fetchRequest setSortDescriptors:sortDescriptors];

   NSPredicate *predicate = [NSPredicate predicateWithFormat:@"person == '%@'", self];
   [fetchRequest setPredicate:predicate];

   NSFetchedResultsController *controller = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                                  managedObjectContext:self.managedObjectContext
                                                  sectionNameKeyPath:nil
                                                  cacheName:nil];
   NSError *error;
   BOOL success = [controller performFetch:&error];

車は一切返却されていません。私の述語は間違っていますか?

補足-なぜself.carsを使用しないのですか? 私が言うように、これは実験です。の永続キャッシュの恩恵を受けることを望んでいNSFetchedResultsControllerます。

4

2 に答える 2

1

述語の一重引用符は間違っています。

[NSPredicate predicateWithFormat:@"person == %@", self];
于 2012-10-22T21:41:15.617 に答える
1

この例では、オブジェクトをフェッチしてい"Person"ます。"Car"たぶん、代わりにオブジェクトを取得したいですか?

 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Car"];
于 2012-10-22T20:52:38.240 に答える