Ios 将数据与ContentsOfUrl一起使用

Ios 将数据与ContentsOfUrl一起使用,ios,swift,Ios,Swift,我这里有一段代码片段: let endpointURL = URL(string: "http://foobar.com") let downloadTask = URLSession.shared.downloadTask(with: endpointURL!, completionHandler: { url, response, error in if (error == nil) { let dataObject = NSData(contentsOfUR

我这里有一段代码片段:

let endpointURL = URL(string: "http://foobar.com")

let downloadTask = URLSession.shared.downloadTask(with: endpointURL!, completionHandler: { url, response, error in

    if (error == nil) {

        let dataObject =  NSData(contentsOfURL: endpointURL!)

        let jsonArray: Array = JSONSerialization.JSONObjectWithData(dataObject!, options: nil, error: nil) as Array 


    }
})

downloadTask.resume()
我有一个问题:

Ambiguous use of 'init(contentsOfURL:)' for NSData part 

我怎样才能使它明确

我建议在Swift 3中使用类似的方法来加载JSON数据dataTask比downloadTask更合适


这是斯威夫特。使用数据,而不是NSData。不要使用数组。声明特定类型的Swift数组,如[String]或[[String:Any]]或任何需要的类型。您的语法毫无意义,因为您将直接从endpointURL加载数据。使用dataTask->返回的数据参数或使用downloadTask->返回的url参数。在您的情况下–返回的数据是JSON–dataTask是适当的API如果我使用数据,我会得到:参数标签“contentsOfURL:”不匹配任何可用的重载。我修复了它以使用[String],谢谢!PS:您将Swift 2 NSDatacontentsOfURL、JSONObjectWithData和Swift 3 URLstring:code混为一谈。这段代码无法编译。明白了!谢谢:
let endpointURL = URL(string: "http://foobar.com")

let dataTask = URLSession.shared.dataTask(with: endpointURL!) { data, response, error in

    guard error == nil else {
        print(error!)
        return
    }
    do {
        // the assumed result type is `[[String:Any]]` cast it to the expected type
        if let jsonArray = try JSONSerialization.jsonObject(with: data!) as? [[String:Any]] {
            print(jsonArray)
        }
    } catch {
        print(error)
    }
}
dataTask.resume()