首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可可NSTask提取

可可NSTask提取
EN

Stack Overflow用户
提问于 2018-11-02 10:47:20
回答 2查看 81关注 0票数 1

我想在我的Cocoa应用程序中运行这个命令。在NSTask的帮助下,我通过将fileHandle输出编码为NSString来获得以下输出。但我不能提取特定密钥的值。我尝试使用SWXMLHash将其转换为xml,并使用jsonSerializer将其转换为JSON。但它变得更复杂了。

有办法这样做吗?

代码语言:javascript
复制
 <?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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-02 11:14:52

您应该能够使用PropertyListSerialization直接解析这个输出。看看文档

我建议您看一下使用IOKit的情况。它可能有点令人望而生畏的API得到处理,但它提供了大量的力量。我曾经用它作为USB设备信息和连接/断开通知在过去,它工作得很好。我认为您会发现它比解析命令行实用程序的输出要健壮得多。

票数 0
EN

Stack Overflow用户

发布于 2018-11-02 12:05:13

您可以使用下面这样的内容来获得包含字典的Array。

代码语言:javascript
复制
let url = Bundle.main.url(forResource: "data", withExtension: "plist")!
let plistData = try! Data(contentsOf: url)
if let array = try! PropertyListSerialization.propertyList(from: plistData, options: [], format: nil) as? [[String:Any]] {

   print(array)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53117107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档