【发布时间】:2018-11-02 10:47:20
【问题描述】:
我想在我的 Cocoa 应用程序中运行此命令 system_profiler -xml SPUSBDataType。在NSTask 的帮助下完成后,我通过将fileHandle 输出编码为NSString 得到以下输出。但我不能提取特定键的值。我尝试使用SWXMLHash 将其转换为xml,并使用jsonSerializer 转换为JSON。但它变得更加复杂。
有什么办法吗?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>_SPCommandLineArguments</key>
<array>
<string>/usr/sbin/system_profiler</string>
<string>-nospawn</string>
<string>-xml</string>
<string>SPCameraDataType</string>
<string>-detailLevel</string>
<string>full</string>
</array>
<key>_SPCompletionInterval</key>
<real>0.13360595703125</real>
<key>_SPResponseTime</key>
<real>0.22787702083587646</real>
<key>_dataType</key>
<string>SPCameraDataType</string>
<key>_detailLevel</key>
<integer>-1</integer>
<key>_items</key>
<array>
<dict>
<key>_name</key>
<string>FaceTime HD Camera</string>
<key>spcamera_model-id</key>
<string>Apple Camera VendorID_0x106B ProductID_0x1570</string>
<key>spcamera_unique-id</key>
<string>CC89657KQR6GDV4AQ</string>
</dict>
</array>
</dict>
</array>
</plist>
【问题讨论】:
-
您在下面得到了一些很好的答案。如果它们还不足以让你越过这个障碍,那么下一步就是提取这部分代码并做一个简单的例子来完成这部分(调用 NSTask 获取输出,转换为属性列表)并查看如果你仍然无法让它工作。如果你不能,那么你至少可以在这里分享一些更简单的独立代码,以便我们可以进一步帮助你。