在快速3游乐场阅读plist

我在这里跟随了很多问题,但似乎没有任何效果。

我在Playground使用Swift3 。 在El Capitan和Xcode 8.1上运行。 我有一个带根的plist作为包含一个Int值和两个Ints的2D数组的Dictionary

plist中

我所遵循的每一个问题似乎都没有起作用我最接近的是操场上没有返回错误但它似乎一直在运行(旋转图标永远不会停止)。

我目前的代码,我相信是我所取得的最接近的代码。

 import Foundation if let path = Bundle.main.path(forResource: "levelList", ofType: "plist") { let plistXML = FileManager.default.contents(atPath: path)! let mydata = try! PropertyListSerialization.propertyList(from: plistXML, options: [], format: nil) as! [String:Any] } 

我在之前的堆栈溢出答案中尝试过的其他选项在类似的上下文中。

 let mydata = Dictionary(fromPropertyList: path, format: "XML") as! [String: Any] ****** let mydata = Dictionary(contentsOf: path) as? [String: Any] 

数据已正确添加到资源文件夹中,因为链接的问题提供了相关说明。 我按照评论中的建议重新启动了Xcode(和mac)。 一段时间后执行停止并显示错误“错误:执行被中断原因exc_bad_access(代码= 1地址= 0x0)”再次重启后代码正常工作。 如何在操场上显示[“Level 2”:[“Col”:)时,如何将数据提取到swift数组中?

您使用的是错误的API,您需要加载Data而不是文件系统中的某些内容。

 if let url = Bundle.main.url(forResource: "levelList", withExtension: "plist"), let plistData = try? Data(contentsOf: url ) { let mydata = try! PropertyListSerialization.propertyList(from: plistData, options: [], format: nil) as! [String:Any] } 

为了最终使我使用的程序工作。

 devices = NSArray(contentsOfFile: path) as! [AnyObject] 

操场连续运行的问题通过转到活动监视器并强制退出名为com.apple.coresimulator的进程来解决,该进程被识别为无响应。 在这之后,操场立刻跑了。