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

Swift 3 URLSession.shared() 对成员 'dataTask(with:completionHandler:) 错误错误的模糊引用

如何解决Swift 3 URLSession.shared() 对成员 'dataTask(with:completionHandler:) 错误错误的模糊引用

编译器被函数签名弄糊涂了。你可以像这样修复它:

let task = URLSession.shared.dataTask(with: request as URLRequest) {

但是,请注意,如果之前将“请求” 声明URLRequest而不是: __URLRequest``NSMutableuRLRequest

var request = URLRequest(url:myUrl!)

NSMutableuRLRequest这是失败的新事物之间的自动转换URLRequest,迫使我们在这里进行这种转换。

解决方法

您好,我有用于 swift2.2 的 json 解析代码,但是当我将它用于 Swift 3.0 时,会出现该错误

ViewController.swift:132:31:对成员 ‘dataTask(with:completionHandler:)’ 的模糊引用

我的代码在这里

   let listUrlString =  "http://bla.com?batchSize=" + String(batchSize) + "&fromIndex=" + String(fromIndex)
    let myUrl = URL(string: listUrlString);
    let request = NSMutableURLRequest(url:myUrl!);
    request.httpMethod = "GET";

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

        if error != nil {
            print(error!.localizedDescription)
            DispatchQueue.main.sync(execute: {
                AWLoader.hide()
            })

            return
        }

        do {

            let json = try JSONSerialization.jsonObject(with: data!,options: .mutableContainers) as? NSArray

            if let parseJSON = json {

                var items = self.categoryList

                items.append(contentsOf: parseJSON as! [String])

                if self.fromIndex < items.count {

                    self.categoryList = items
                    self.fromIndex = items.count

                    DispatchQueue.main.async(execute: {

                        self.categoriesTableView.reloadData()

                        AWLoader.hide()

                    })
                }else if( self.fromIndex == items.count){


                    DispatchQueue.main.async(execute: {

                        AWLoader.hide()

                    })

                }



            }

        } catch {
            AWLoader.hide()
            print(error)

        }
    }

    task.resume()

感谢您的想法。

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