0

という配列がありsomeArrayます。の name 値にアクセスしたいと思いますNSArray。以下を使用してアクセスしようとしていますが、運がありません。どうすれば適切に行うことができますか?

cell.textLabel.text = [[someArray objectAtIndex:indexPath.row] objectForKey:@"name"];

some array {
    haserror = 0;
    headers =     {
        code = 0;
        haserror = 0;
        nodeid = "fe1.aaaaaa.2.undefined";
        time = 16;
    };
    results =     (
                {
            coords =             (
                "44.916667",
                "8.616667"
            );
            id = 2;
            key = alessandria;
            name = Alessandria;
            state = Piemonte;
            zip = 1512;
        },
                {
            coords =             (
                "43.616944",
                "13.516667"
            );
            id = 3;
            key = ancona;
            name = Ancona;
            state = Marche;
            zip = 601;
        },

}
4

2 に答える 2

3

あなたのデータモデルから見る限り、キーnameはキーの下のノードresultsです。このデータ モデルをディクショナリ マップとして使用できます。以下のコード スニペットは、必要なものを提供する必要があります。

NSDictionary *myObject = [[someArray objectAtIndex:indexPath.row] objectForKey:@"results"];
cell.textLabel.text = [myObject objectForKey:"name"];

重要な注意: データを受信するための lopps またはその他のメカニズムがある場合は、より効率的な解決方法がある可能性があります。

于 2013-01-30T12:17:36.313 に答える
1

他の人が指摘しているように、someArrayは辞書であり、は辞書results内の配列を指すキーです。配列内のすべての名前フィールドの配列が必要な場合は、次のように変数でresults使用できます。valueForKeyPath:someArray

NSArray *names = [someArray valueForKeyPath:@"results.name"];

これで、names変数には、サンプルコードで表示されたデータセットの「Alessandria」と「Ancona」が含まれているはずです。

于 2013-01-30T16:00:18.360 に答える