问题获取NSData请求在Swift 2.0中工作

Zba*_*itZ 4 nsurl nsdata swift2

我希望有人可以帮助我弄清楚我正在尝试用Swift 2.0编写(或学习写作)的应用程序.这在以前的Swift 1.2中有效,但经过必要的转换后,我不断面对错误;

无法使用类型为'(contenOfURL:NSURL,options:NSDataReadingOptions,error:nil)的参数列表调用类型为'NSData'的初始值设定项'

这是我的代码,略有截断,我正在使用;

...

class func fetchMinionData() -> [Minion] {
    let myURL = "https://myurl/test.json"

    let dataURL = NSURL(string: myURL)

    let data = NSData(contentsOfURL: dataURL!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: nil)
    //THIS IS THE LINE THAT THROWS THE ERROR

    let minionJSON = JSON(data)

    var minions = [Minion]()

    for (_ , minionDictionary) in minionJSON {
        minions.append(Minion(minionDetails: minionDictionary))
    }

    return minions
}

...
Run Code Online (Sandbox Code Playgroud)

请注意,我计划在下载数据后使用SwiftyJSON库进一步解析数据.我在网上无休止地搜索,但我似乎无法弄清楚这一点!谢谢!

Ked*_*dar 10

如果您正在使用Swift 2,则不应传递最后一个参数"error".而是尝试围绕NSData初始化.如果需要在外部访问数据,则将init结果转换为var并转换为let Modified代码

var optData:NSData? = nil
  do {
    optData = try NSData(contentsOfURL: dataURL!, options: NSDataReadingOptions.DataReadingMappedIfSafe)
  }
  catch {
    print("Handle \(error) here")
  }

  if let data = optData {
    // Convert data to JSON here
  }
Run Code Online (Sandbox Code Playgroud)