Objective-C でネストされた辞書値に直接アクセスする 質問する

Objective-C でネストされた辞書値に直接アクセスする 質問する

Objective-C で外部配列の内部配列に直接アクセスする方法はありますか? たとえば、外部データ ソースを呼び出すと、次のオブジェクトが返されます。

{
bio = "this is the profile.bio data";
"first_name" = John;
"last_name" = Doe;
location =     {
    name = "Any Town, Any State";
};
metadata =    {
    pictures =    {
        picture = "https://picture.mysite.com/picture.jpeg";
    }
}
}

たとえば、location.name や metadata.pictures.picture データにアクセスできるようにしたいのですが、ドット表記は機能しないようです。例:

_gfbLocation = [result objectForKey:@"location.name"];
_gfbPicture = [result objectForKey:@"metadata.pictures.picture"];

このデータにアクセスできる唯一の方法は、最初に内部配列の内容をオブジェクトに設定することです。ご意見をお聞かせください。

ベストアンサー1

このようなネストされたキーの場合は、キーパス. keyPath は、ドットで結合された一連のキーです。これを使用して、キー値コーディングをサポートするオブジェクト (NSDictionary オブジェクトなど) からネストされた値を取得できます。したがって、あなたの場合は次のように動作するはずです:

[result valueForKeyPath:@"location.name"];

キーバリューコーディングの詳細については、Appleのキー値コーディングプログラミングガイド

参照この関連するStackOverflowの質問

おすすめ記事