[解決済み] NSDictionaryのキーに基づいたNSArrayのフィルタリングのためのNSPredicateの使用
2023-02-24 22:02:17
質問
辞書の配列を持っています。
キーに基づいた配列のフィルタリングをしたい。
こんな感じでやってみました。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == %@)", @"Football"];
NSArray *filteredArray = [data filteredArrayUsingPredicate:predicate];
これはうまくいきません、結果が出ません。何か間違ったことをしているようです。これは、"SPORT"がアイバーだった場合の方法だと知っています。キーであればおそらく違うと思います。
しかし、私は例を見つけることができませんでした。
ありがとうございます。
更新
検索する文字列を引用符で囲みました。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == '%@')", @"Football"];
やはりうまくいきません。
アップデート 2
解決しました。私は実際にシングルクォートを削除しなければなりませんでしたが、これはガイドに書かれていることに反しているようです。
私の本当の問題は、私はネストされた配列を持っていて、実際に辞書を評価していなかったことです。骨抜きにされました。
どのように解決するのですか?
データ変数が、実際にはSPORTをキーとする辞書を含む配列である限り、それは動作するはずです。
NSArray *data = [NSArray arrayWithObject:[NSMutableDictionary dictionaryWithObject:@"foo" forKey:@"BAR"]];
NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(BAR == %@)", @"foo"]];
この場合のフィルタリングは辞書を含む。
(%@は引用する必要はありません。これはNSPredicateがオブジェクトを生成するときに行われます。)
関連
-
[解決済み] 角括弧 < > と引用符 " " を使って #import する。
-
[解決済み] 複数のサブクラスで1つのストーリーボードuiviewcontrollerを使用する方法
-
[解決済み] NSArrayのディープコピー
-
[解決済み] NSLog オーバーライドされた記述方法でのオブジェクトのメモリアドレスの記録
-
[解決済み] キーチェーンのアイテムは何がユニークなのか(iOSの場合)?
-
[解決済み] Info.plistのCFBundleVersionのアップロードエラー
-
[解決済み] Swiftの変数はアトミックか?
-
[解決済み] std::stringをNSStringに変換する方法は?
-
[解決済み] objective-cのクラスインスタンスを名前で作成する?
-
[解決済み] NSPredicateでNOT INを使ったNSArray
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 複数のサブクラスで1つのストーリーボードuiviewcontrollerを使用する方法
-
[解決済み] ARCで__autoreleasing ownership修飾子を記述する必要があるのは、どのような場合ですか?
-
[解決済み] なぜObjective-Cはプライベートメソッドをサポートしないのですか?
-
[解決済み] NSURLをローカルファイルのパスに変換する
-
[解決済み] IOSのUIViewからアプリケーションのドキュメントフォルダに画像を保存する
-
[解決済み] Xcodeの "unused variable "の警告を消すにはどうしたらいいですか?
-
[解決済み] iOS8 - 高さがゼロであることを示唆する曖昧な制約
-
[解決済み] iOSアプリケーションの最上位ビュー/ウィンドウへの参照取得
-
[解決済み] CocoaでperformSelector:withObject:afterDelay:をプリミティブ型で使用する方法は?
-
[解決済み] ViewController の respondsToSelector: 割り当て解除されたインスタンスにメッセージが送信される (CRASH)