コア データ モデル用に fetchedResultsController を作成していますが、argumentArray から 1 つの項目のみを使用する述語に問題があります。配列に 3 つの項目がある場合、次のように出力されます:NOT unique == "16C0629D-F8B6-4DF3-9AAD-820821B6D325"
最初の項目に対してのみ検索します。
私の完全な fetchedResultsController コードは以下のとおりです。私はたくさん検索しましたが、私が使用している方法について多くの議論を見つけることができないようです. どんな助けでも大歓迎です。ありがとう!
- (void)setupFetchedResultsController
{
NSMutableArray *opponentUniques = [NSMutableArray array];
for (Opponent *opponent in self.opponentArray) {
[opponentUniques addObject:opponent.personUnique];
}
NSPredicate *searchPredicate = nil;
if ([opponentUniques count] > 0) {
searchPredicate = [NSPredicate predicateWithFormat:@"!(unique == %@)" argumentArray:opponentUniques];
}
NSFetchRequest *allPeople = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
allPeople.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];
allPeople.predicate = searchPredicate;
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:allPeople
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
}