私のアプリケーションでは、NSDictionaryのオブジェクトを保持するNSArrayを持っています。 各辞書には、 "YES"または "NO"(ブール値)を格納するNSNumber型の値を保持する1つの "Primary"があります。配列内の辞書オブジェクトだけが値 "YES"を持つことができます。 ループを使用しない「プライマリ」キーがYESの辞書オブジェクトを取得するにはどうすればよいですか?iPhone - 辞書の配列を繰り返してオブジェクトを取得する
1
A
答えて
1
NSArray
で便利なメソッドを呼び出してオブジェクトを見つけることはできますが、そのようなメソッドではループを内部的に使用してオブジェクトを見つけることに注意してください。
NSUInteger indexOfPrimary = [array indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
return [[obj objectForKey:@"Primary"] boolValue];
}];
NSDictionary *primary = nil;
if (indexOfPrimary != NSNotFound) {
primary = [array objectAtIndex:indexOfPrimary];
}
もう1つのオプションは-[NSArray filteredArrayUsingPredicate:]
です。
0
「ループを使用しない」とはどういう意味ですか?意味はforループを書いていないか、あるいはあなたが使っているルーチンがループを使わないという意味ですか? 「線形時間」ではなく「一定時間」に答えを出すには、レコードへのポインタを保持するだけです。あなたは配列に要素の挿入/削除を所有していない場合は、いや、そこ線形時間ルックアップ以外に方法はないのいずれかのループを自分でやって、またはNSArrayのの
- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate
関連する問題
- 1. C#:辞書を繰り返して各コンテンツを取得できますか?
- 2. 配列を繰り返す
- 3. スウィフト2の配列として辞書から値を取得
- 4. ng-repeatを使用してオブジェクトの配列を繰り返し処理する
- 5. C配列を繰り返します。
- 6. バイナリツリーの繰り返し文字列の数を取得する
- 7. ルビー配列から繰り返し要素を取得するには?
- 8. 辞書をオブジェクトとして持つNSDictionary、オブジェクトを取得
- 9. 連想配列の配列をキャッシュして繰り返し処理する
- 10. Javaの配列を繰り返す
- 11. タプルの配列を繰り返す
- 12. xcode iPhoneの配列と辞書[noob]
- 13. URLを繰り返して特定の値を取得する
- 14. OOP in PHP - オブジェクト配列の繰り返し
- 15. application()オブジェクトに辞書オブジェクトの配列を格納する - Classic ASP
- 16. json配列をJavaScriptで繰り返す
- 17. 辞書の配列、空の辞書、配列データを保持
- 18. iPhone:バックグラウンドタスクを繰り返す
- 19. 配列は、C(繰り返し)
- 20. 辞書のタプルを繰り返し、入れ子になった辞書を関数に渡します。
- 21. Python辞書を繰り返し、すべての文字列をkeyで編集します。
- 22. どのようにして辞書から配列を取り出し、その配列内の辞書を検索するのですか?
- 23. 辞書の配列を配列の辞書に照合する方法は?
- 24. 新しい値を持つ繰り返しオブジェクトのPHP配列の再構築
- 25. Excelワークシートの行と列の繰り返しと値の取得
- 26. 最高のデータ構造:辞書の配列、オブジェクトの配列?
- 27. jqliteの配列を繰り返し処理する
- 28. Android(繰り返し番号の配列をチェックする方法?)
- 29. 辞書の配列
- 30. 辞書の配列内の辞書の値を検索する
を使用すると、あなたは私を説明できますあなたが書いたコードについて少しは? (私はiPhoneのコーディングに新しいんだよ) – Satyam
正確にあなたが何をしているのか分からないのであれば教えてください。 –
私はiPhoneの開発者です。しかし、私は "(^)(id obj、NSUInteger idx、BOOL * stop)"のようなコードに遭遇したことはありません。私はこの部分を理解していませんでした。 – Satyam