2016-10-26 16 views
-2

私は次のような辞書持っている場合:私は私の辞書オブジェクトを取得します」、言うことのための方法がある特定のキー値のペアを持つ辞書の配列からオブジェクトを取得しますか?

{ 
"banners": [ 
    { 
    "imageUrl": "www.google.com", 
    "destination": "home", 
    "position": 1 
    }, 
    { 
    "imageUrl": "www.reddit.com", 
    "destination": "work", 
    "position": 2 
    }, 
    { 
    "imageUrl": "www.imgur.com", 
    "destination": "play", 
    "position": 3 
    } 
] 
} 

をどこforループを使用せずにキー 『位に』 = 3の値?

+0

はい、ただし、_someone_はループ内のすべての辞書を見なければなりません。たとえループが目に見えず直接コード内になくても、配列内のすべての辞書を調べなければなりません。したがって、 "forループを使用しない"という概念は愚かなものです。いくつかの魔法使いが正しい辞書に直接に行くことは不可能です。 – matt

+0

@mattわかりました。私はそれが既にもっと洗練されたケースで助けることができることを学ぶことができる清潔に見えたすでに存在していた素敵なファクトリメソッドがあったかどうか疑問に思っていた。 – user1416564

答えて

4

うーん、多くの方法がある。のは、それについて考えてみましょう!それはあなたを教えてくれますどのようなドキュメントをちょっと見ている驚くべきことだ。

bannersキーの値があるとして、あなたが持っているもの辞書の配列です。あなたが探しているのはNSArrayメソッドです.NeArrayメソッド(filteredArrayUsingPredicate:

を記述するNSPredicateを3と書くと、それが真であるすべての辞書(この場合は1つの辞書の配列)のNSArrayが返されます。

ああ、別の可能性があります:indexOfObjectPassingTest:これにより、辞書のposition3であることを指定するブロックを指定すると、この配列内のその辞書のインデックス(この場合は2)が返されます。

私は何度も続けることができますが、自分でマニュアルを読むことを学ぶ方が良いとは思いませんか? Here it is

関連する問題