タグ付けされた質問 「nspredicate」

8
NSPredicate:NSDateプロパティの日によるオブジェクトのフィルタリング
NSDateプロパティを持つコアデータモデルがあります。データベースを日でフィルタリングしたい。ソリューションにはが含まれるNSPredicateと思いますが、すべてをまとめる方法がわかりません。 とNSDateを使用NSDateComponentsして2つのの日を比較する方法を知っていますがNSCalendar、それをどのようにフィルタリングしNSPredicateますか? おそらくNSManagedObject、年、月、日だけで最低限の日付を返すことができるカテゴリをサブクラスに作成する必要があります。次に、それをで比較できNSPredicateます。これはあなたの推薦ですか、それとももっと簡単なものがありますか?

6
NSPredicateを使用してNSDictionaryキーに基づいてNSArrayをフィルタリングする
辞書がたくさんあります。 キーに基づいて配列をフィルター処理したいのですが。 私はこれを試しました: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == %@)", @"Football"]; NSArray *filteredArray = [data filteredArrayUsingPredicate:predicate]; これは機能しません。結果はありません。私は何か間違っていると思います。「SPORT」がivarであった場合、これがメソッドであることは知っています。それが鍵だとしたら、おそらく違うと思います。 しかし、私は例を見つけることができませんでした。 ありがとう 更新 検索している文字列を引用符で囲みました。 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == '%@')", @"Football"]; それでも動作しません。 アップデート2 解決しました。私は実際には一重引用符を削除する必要がありましたが、これはガイドの言うことに反するようです。 私の本当の問題は、ネストされた配列があり、実際に辞書を評価していなかったことです。骨頭が動く。

2
NOT INを使用したNSPredicateを持つNSArray
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だけを使用したい場合は、もちろん完全に機能します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.