微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我希望有人可以帮助我弄清楚我正在尝试用 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
}

...

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

解决方法

如果您正在使用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
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐