NSPredicateを使用して特定のオブジェクトを除外したいNSArrayがあります。INを簡単に実行できることがわかったので、NOT INを使用できることを望んでいました。
だから私は私の配列を持っています:
self.categoriesList
次に、削除する値を取得します。
NSArray *parentIDs = [self.cateoriesList valueForKeyPath:@"@distinctUnionOfObjects.ParentCategoryID"];
これにより、表示したくないカテゴリのParentCategoryIDのリストが表示されるため、NSPredicateを使用して削除できます。
self.cateoriesList = [self.cateoriesList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"CategoryID NOT IN %@",parentIDs]];
これは失敗します:
reason: 'Unable to parse the format string "CategoryID NOT IN %@"'
もちろん、INだけを使用したい場合は完全に機能します。
NOT (CategoryID IN %@)
はどうですか?
NONE
を使用してはどうですか?
[NSPredicate predicateWithFormat:@"NONE CategoryID IN %@", parentIDs];