使用不同的模拟器运行时,data.plist文件为nil

时间:2016-01-18 15:53:59

标签: ios iphone xcode swift

我第一次使用iphone 6模拟器时,我的代码运行良好。但是当我用模拟器iphone 5运行它时,它会抛出一个错误  "致命错误:在展开可选值"

时意外发现nil

这是抛出错误的代码行:

let futsalCenterData: [NSData] = NSArray(contentsOfURL: self.dataFileURL()) as! [NSData]

是因为它已经在iphone 6模拟器中写入文件了,该文件只能在iphone 6模拟器中使用吗?如果是这样的情况,那么如果在其他模拟器中不存在,我怎么能创建一个呢?以及如何在iphone中使用此功能?

这是加载器中找到url的函数:

    func dataFileURL() -> NSURL {
    //finding the file
    let documentsDirectory: NSURL = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask ).first!

    //create a new null file called data.plist
    let filePath: NSURL = documentsDirectory.URLByAppendingPathComponent("data.plist")

    return filePath

}

这是读取文件的函数:

    func readFutsalCenterFromFile() -> [FutsalCenter] {
    //this line below that throws an error
    let futsalCenterData: [NSData] = NSArray(contentsOfURL: self.dataFileURL()) as! [NSData]
    i

    var futsalCenter: [FutsalCenter] = []

    for data in futsalCenterData{
        let futsal: FutsalCenter = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! FutsalCenter
        futsalCenter.append(futsal)
    }
    return futsalCenter
}

0 个答案:

没有答案