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

时间:2015-10-11 20:08:51

标签: ios swift file

好的,管理将这段代码放在一起,用Xcode创建了一个plist文件,我将{使用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中做到这一点。

2 个答案:

答案 0 :(得分:1)

获取创建文件的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)

答案 1 :(得分:1)

在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)")