2016-09-22 52 views
0

与斯威夫特3.我有以下代码嘿遇到问题:如何设置URLSession斯威夫特3

public var urlSession : URLSession? 
self.urlSession = URLSession(configuration: URLSessionConfiguration.default, 
      delegate: self, 
      delegateQueue: OperationQueue.main) 

我收到以下错误消息:“URLSession产生(),而不是预期的情境结果键入URLSession?“

我在这里做错了什么?

+0

查看我对这个链接的回答:http://stackoverflow.com/questions/40347832/urlsession-error – Fidel

回答

1

雨燕3.0

let urlString= "URL String" 
let myUrl = URL(string: urlString); 
let request = NSMutableURLRequest(url:myUrl!); 
request.httpMethod = "GET"; 

let task = URLSession.shared().dataTask(with: request as URLRequest) { 
    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{ 
print(parseJSON) 
} else { 
AWLoader.hide() 
} 
catch{ 
     AWLoader.hide() 
     print(error) 
    } 
} 
task.resume() 
1

我我问你URLSession的功能呢?

也许在你的代码的问题是这样的:

func URLSession(session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { 
    self.data.append(data as Data) 
} 

和:

func URLSession(session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { 
    if error != nil { 
     print("Failed to download data") 
    }else { 
     print("Data downloaded") 
     self.parseJSON() 
    } 
} 

所以不是:

func URLSession(session: 

做到这一点:

func urlSession(_ session: 

最终会像:

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { 
    self.data.append(data as Data) 
} 

func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { 
    if error != nil { 
     print("Failed to download data") 
    }else { 
     print("Data downloaded") 
     self.parseJSON() 
    } 
} 

如果它不是你的问题的解决方案,请更新更多的代码你的问题。 ✌️