我有以下文件:
我有一个问题,如何从此plist文件中获取url值。
我已将此文件转换为NSDictionary,它包含所有键和值。
我已添加此行以检查其工作原理
NSLog(@"%@", [[[[source objectForKey:@"Root"] objectForKey:@"updates"] objectForKey:@"Item 0"] objectForKey:@"url"]);
但它返回(null)而不是someurl1。
source - 这是我的NSDictionary实例变量。
我的NSDictionary对象的日志
(NSDictionary *) $1 = 0x0ab38b60 {
plist = {
dict = {
array = {
dict = (
{
integer = 4;
key = (
id,
url,
compression
);
string = "http://someurl1";
true = "";
},
{
integer = 5;
key = (
id,
url,
compression
);
string = "http://someurl2";
true = "";
}
);
};
key = updates;
};
version = "1.0";
};
}
答案 0 :(得分:4)
尝试:
for (NSDictionary *item in [source objectForKey:@"updates"]) {
NSLog(@"%@", [item objectForKey:@"url"]);
}
请注意,“Root”不是键,它只是Xcode显示plist的方式。你需要遍历一个数组,'Item 0'就是它在IDE中的显示方式。
答案 1 :(得分:2)
很好。
试试这段代码。
NSDictionary *rootDictionary = [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"PListFile" ofType:@"plist"]];
NSLog(@"%@", [[[rootDictionary objectForKey:@"updates"] objectAtIndex:0] objectForKey:@"url"]);