苹果 Swift 3.0 数据

Apple Swift 3.0 Data

我正在尝试使用:

init(contentsOf: URL, options: Data.ReadingOptions)

在 Swift 3.0 和 xCode 8.0 中。我使用的确切语句是:

let jsonData = try Data.init(contentsOf: URL(file_path), options: .mappedIfSafe)

我也试过:

let jsonData = try Data(contentsOf: URL(file_path), options: .mappedIfSafe)

我正在关注 documentation

这无法编译,抱怨调用中的参数标签不正确。

我是Swift新手,请多多关照。 file_path 是从 NSOpenPanel 获得的字符串,并使用 stringValue.

进行字符串化

谢谢!

不要将字符串路径与 NSOpenPanel 结合使用,获取 url 属性 – 这样可以避免创建 URL 的额外步骤 – 并包装Data do - catch 块中的初始值设定项。

if let url = openPanel.url {
    do {
        let jsonData = try Data(contentsOf: url, options: .mappedIfSafe)
        // do things with jsonData
    } catch {
       print(error)
    }
}

您似乎只是错过了参数标签。此外,您的 Data 构造函数中不需要 init 关键字。

let jsonData = try Data(contentsOf: URL(fileURLWithPath: filePath), options: .mappedIfSafe)