sendAsynchronousRequest在iOS 9中被弃用,如何修复我的函数
mysendAsynchronousRequest在iOS 9中被弃用,如何修复我的函数,ios,swift,Ios,Swift,myUIImageView上的扩展正在向我发出警告。我想一个警告免费的项目,但我不知道如何妥善解决这个问题。我收到的警告是: extension UIImageView { public func imageFromUrl(urlString: String) { if let url = NSURL(string: urlString) { let request = NSURLRequest(URL: url) NSUR
UIImageView
上的扩展正在向我发出警告。我想一个警告免费的项目,但我不知道如何妥善解决这个问题。我收到的警告是:
extension UIImageView {
public func imageFromUrl(urlString: String) {
if let url = NSURL(string: urlString) {
let request = NSURLRequest(URL: url)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
(response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
if let imageData = data as NSData? {
self.image = UIImage(data: imageData)
}
}
}
}
}
sendAsynchronousRequest在iOS 9.0中被去除:使用[NSURLSession]
dataTAskWithRequest
导致警告的扩展是:
extension UIImageView {
public func imageFromUrl(urlString: String) {
if let url = NSURL(string: urlString) {
let request = NSURLRequest(URL: url)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
(response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
if let imageData = data as NSData? {
self.image = UIImage(data: imageData)
}
}
}
}
}
试试这个
Swift 3.0
URLSession.shared.dataTask(with: request) {data, response, error in
if (error == nil) {
//Do needful things // Your code . . .
} else {
print("Error : \(error?.localizedDescription)");
}
}.resume();
您的警告清楚地表明,
sendAsynchronousRequest在iOS 9.0中被删除:使用[nsurSession dataTAskWithRequest
,这意味着您应该使用nsurSession
,而不是NSURLConnection
你应该这样做
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
print("Response: \(response)")})
task.resume()
对于Swift 4.0使用以下选项:
let request = URLRequest(url: URL(string: "URL Here")!)
let session = URLSession.shared
let task = session.dataTask(with: request, completionHandler: { data, response, error -> Void in
do {
//your code here
} catch {
print("error")
}
})
task.resume()