我无法在NSDictionary对象中访问我需要的值,一首歌曲在track键下有多个值,但由于词典不可索引,我无法访问这些值个别。我已经尝试将轨道密钥的对象存储为数组,但是这两个条目成为单个字符串条目,因此该数组的长度仅为1,没有用。
另外,做一些像[response valueForKeyPath @" response.songs.tracks.foreign_id"]这样的东西给了我两个外国的ID,我怎么能得到第一个?我已经在这方面苦苦挣扎了一段时间,已经在stackoverflow周围搜索了答案,但没有一个有效,感谢任何帮助,谢谢!
这是NSDictionary中的数据:
{
response = {
songs = (
{
"artist_foreign_ids" = (
{
catalog = spotify;
"foreign_id" = "spotify:artist:6vWDO969PvNqNYHIOW5v0m";
}
);
"artist_id" = AR65K7A1187FB4DAA4;
"artist_name" = "Beyonc\U00e9";
id = SOUTJIT142F256C3B5;
title = "Partition (Explicit Version)";
tracks = (
{
catalog = spotify;
"foreign_id" = "spotify:track:2vPTtiR7x7T6Lr17CE2FAE"; //I WANT TO ACCESS JUST THIS VALUE
"foreign_release_id" = "spotify:album:1hq4Vrcbua3DDBLhuWFEVQ";
id = TRLHJRD1460052F846;
},
{
catalog = spotify;
"foreign_id" = "spotify:track:6m4ZFQb3zPt3IdRDTN3tfb";
"foreign_release_id" = "spotify:album:5KPpho7rztJrZVA9yXjk8K";
id = TRYMBSK146005C3A46;
}
);
}
);
status = {
code = 0;
message = Success;
version = "4.2";
};
};
}
答案 0 :(得分:0)
示例字典中的tracks
似乎已经是一个数组(字典),所以你应该可以做类似的事情:
NSArray *songs = response[@"songs"];
for (NSDictionary *songDict in songs) {
NSArray *tracks = songDict[@"tracks"];
for (NSDictionary *trackDict in tracks) {
NSString *trackForeignId = trackDict[@"foreign_id"];
// Do whatever you like with trackForeignId here.
}
}