Ios 解析plist文件并获取密钥的值

Ios 解析plist文件并获取密钥的值,ios,xml,plist,nsdictionary,Ios,Xml,Plist,Nsdictionary,我有以下文件: 我有一个问题,如何从这个plist文件中获取url值 我已将此文件转换为NSDictionary,它包含所有键和值 我添加了这一行来检查它是如何工作的 NSLog(@"%@", [[[[source objectForKey:@"Root"] objectForKey:@"updates"] objectForKey:@"Item 0"] objectForKey:@"url"]); 但是它返回null而不是someurl1 source-这是我的NSDictionary实例

我有以下文件:

我有一个问题,如何从这个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";
    };
}
尝试:

请注意,“Root”不是键,它只是Xcode显示plist的方式。您需要在数组上循环,同样,“项0”正是它在IDE中的显示方式。

请尝试:

请注意,“Root”不是键,它只是Xcode显示plist的方式。您需要在数组上循环,同样,“项0”正是它在IDE中的显示方式。

非常好

试试这个代码

NSDictionary *rootDictionary = [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"PListFile" ofType:@"plist"]];
NSLog(@"%@", [[[rootDictionary objectForKey:@"updates"] objectAtIndex:0] objectForKey:@"url"]);
很好

试试这个代码

NSDictionary *rootDictionary = [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"PListFile" ofType:@"plist"]];
NSLog(@"%@", [[[rootDictionary objectForKey:@"updates"] objectAtIndex:0] objectForKey:@"url"]);

无法通过objectForKey访问数组项:。objectAtIndex.可以访问项0。感谢您的响应。我尝试了NSLog@%@、[[[source objectForKey:@Root]objectForKey:@updates]objectAtIndex:0]objectForKey:@url];但它仍然输出null[source objectForKey:@Root]输出什么?您可能不需要按名称获取该对象-毕竟它是根对象。您无法按objectForKey:访问数组项。objectAtIndex.可以访问项0。感谢您的响应。我尝试了NSLog@%@、[[[source objectForKey:@Root]objectForKey:@updates]objectAtIndex:0]objectForKey:@url];但它仍然输出null[source objectForKey:@Root]输出什么?您可能不需要按名称获取该对象-毕竟,它是根对象。我已使用NSLog为NSDictionary更新了我的问题。可能是keys.NSLog@%@[source objectForKey:@updates]有问题;同样返回null。字典的日志与Xcode屏幕截图没有任何相似之处。您加载了不同的plist,或者是如何加载的?我尝试了以下方法:NSDictionary*rootDictionary=[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@plist类型的文件:@plist]];它是有效的。无论如何,谢谢你的帮助。这是我获取词典的错误。我已使用NSLog为我的NSDictionary更新了我的问题。可能是keys.NSLog@%@[source objectForKey:@updates]有问题;同样返回null。字典的日志与Xcode屏幕截图没有任何相似之处。您加载了不同的plist,或者是如何加载的?我尝试了以下方法:NSDictionary*rootDictionary=[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@plist类型的文件:@plist]];它是有效的。无论如何,谢谢你的帮助。这是我拿字典的错误