Ios 尝试使用swift 2.0从文档目录中读取plist文件

Ios 尝试使用swift 2.0从文档目录中读取plist文件,ios,swift,file,Ios,Swift,File,好的,设法把这些代码放在一起,用Xcode创建了一个plist文件,我把它{using iTunes}复制到了app文件夹中,它不起作用 import Foundation class getBeaconConfiguration { var myBeaconsDict: NSDictionary? func getBeacons() { let documentsPath : AnyObject = NSSearchPathForDirectoriesInDomains(.Docu

好的,设法把这些代码放在一起,用Xcode创建了一个plist文件,我把它{using iTunes}复制到了app文件夹中,它不起作用

import Foundation

class getBeaconConfiguration {
var myBeaconsDict: NSDictionary?

func getBeacons() {
    let documentsPath : AnyObject = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0]
    let sourcePath:NSString = documentsPath.stringByAppendingString("/beacons.plist")

    let dict = NSDictionary(contentsOfFile: sourcePath as String)
    print("dict",dict)

   }
}


路径很好,plist在那里,但是返回的NSDictionary似乎是一个空指针。如何在swift 2.0中实现这一点

获取并创建文件的URL,然后从中创建字典

let filename = "beacons.plist"

guard
    let fileURL =  NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.URLByAppendingPathComponent(filename)
    else { fatalError("Unable to get file") }

let dict = NSDictionary(contentsOfURL: fileURL)

与Swift 2.0稍有不同的是,String不再具有stringByAppendingPathComponent,在处理文件路径时应该使用此方法

let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
let sourcePath = documentsPath.stringByAppendingPathComponent("beacons.plist")
let dictionary = NSDictionary(contentsOfFile: sourcePath as String)
print("dict: \(dictionary)")