好的,管理将这段代码放在一起,用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中做到这一点。
答案 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)")