【问题标题】:dataWithContentsOfMappedFile deprecated in iOS 8.0在 iOS 8.0 中不推荐使用 dataWithContentsOfMappedFile
【发布时间】:2015-11-13 06:45:46
【问题描述】:

我使用以下代码从 JSON 文件中检索数据。

let jsonData = try NSData.dataWithContentsOfMappedFile("/Users/User/Desktop/Employee.json")

我收到以下错误

dataWithContentsOfMappedFile was deprecated in iOS 8.0: Use +dataWithContentsOfURL:options:error: and NSDataReadingMappedIfSafe or NSDataReadingMappedAlways instead

有人可以告诉我替代方案吗?

【问题讨论】:

  • 您也没有建议的解决方案吗? Use +dataWithContentsOfURL:options:error: and NSDataReadingMappedIfSafe or NSDataReadingMappedAlways instead你试过了吗?
  • @NeverHopeless 我不想从任何网址使用它。文件在我的本地
  • 真的,就在头文件里。 所有已弃用的方法在头文件中有一行,告诉您改用什么。

标签: ios json swift


【解决方案1】:

试试这个

从本地路径获取使用contentsOfFile,否则使用contentsOfURL

 let contents: NSData?
    do {
        contents = try NSData(contentsOfFile: "/Users/User/Desktop/Employee.json", options: NSDataReadingOptions.DataReadingMappedAlways)
    } catch _ {
        contents = nil
    }

    print(contents)

如果您只想访问contentsOfFile,请使用以下行

    let contents   =  NSData(contentsOfFile:"/Users/User/Desktop/Employee.json")
     print(contents)

【讨论】:

  • 我收到此错误 /Users/Rini/Documents/workspace/MyAppSwift/MyAppSwift/ViewController.swift:20:98: 表达式类型不明确,没有更多上下文
  • 我只能使用这个let jsonData = try NSData(contentsOfFile: "/Users/User/Desktop/Employee.json") 但我不知道如何继续...