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のキー値コーディングプログラミングガイド。