从system_profiler plist访问项目

时间:2015-03-31 19:13:04

标签: objective-c macos plist

我有system_profiler -xml命令生成的plist文件:plist file

如何访问cpu_typemachine_name并将其存储在NSString s?

我尝试了很多方法,甚至将此文件转换为JSON,但无法使用这些元素。

示例:

Code

strnil

路径似乎是这样的:

root \ 0 \ _items \ 0 \ cpu_type root \ 0 \ _items \ 0 \ current_processor_speed ...

这里没有列举,所以我应该能够直接使用这些键,但我不知道如何。

谢谢!

1 个答案:

答案 0 :(得分:1)

[arr valueForKey:@"cpu_type"]无效,因为arr是数组,而不是字典。要访问所需的值,请尝试使用

NSDictionary *rootDictionary = [NSArray arrayWithContentsOfFile:filePath][0];
NSDictionary *itemsDictionary = rootDictionary[@"_items"][0];
NSString *CPUType = itemsDictionary[@"cpu_type"];

请注意,[0][array objectAtIndex:0]的简写,而[@"key"][dictionary objectForKey:@"key"]

的缩写

获取machine_name将以同样的方式完成

NSString *machineName = itemsDictionary[@"machine_name"];