在Swift 2.0更新之前,此代码可以完美地使用PHP脚本从服务器下载我的JSON文件:
let url = NSURL(string: webAdress)
let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData
var request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 5.0)
var response: NSURLResponse? = nil
var error: NSError? = nil
let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error)在更新之后,Xcode要求我做一些更改。我这样做了,代码没有错误,但它总是抛出...
let url = NSURL(string: webAdress)
let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData
let request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 5.0)
var response: NSURLResponse? = nil
var reply = NSData()
do {
reply = try NSURLConnection.sendSynchronousRequest(request, returningResponse:&response)
} catch {
print("ERROR")
}期待您的解决方案!
发布于 2015-06-15 00:04:14
这里有一个使用新NSURLSession的例子--显然,NSURLConnection在iOS 9中已经被弃用了。
let url = NSURL(string: webAddress)
let request = NSURLRequest(URL: url!, cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 5.0)
let session = NSURLSession.sharedSession()
session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
print(data)
print(response)
print(error)
})?.resume()我认为它非常干净,只是没有太多的文档。如果您有任何问题,请让我知道这是工作。
发布于 2015-08-13 22:47:15
嗨,我有同样未解决的问题,Sidetalker提出的使用NSURLSession.dataTaskWithRequest的解决方案不是你想要的,因为NSURLSession应用程序接口是高度异步的(根据苹果公司的文档),并且你在swift 1.2中实现的代码是同步的。另一方面,iOS 9中已经弃用了NSURLConnection,因此您编写的代码可能不是构建的,对吧?
我建议的解决方案是:
let url = NSURL(string: webAdress)
let request: NSURLRequest = NSURLRequest(URL: url!)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
var responseCode = -1
let group = dispatch_group_create()
dispatch_group_enter(group)
session.dataTaskWithRequest(request, completionHandler: {(_, response, _) in
if let httpResponse = response as? NSHTTPURLResponse {
responseCode = httpResponse.statusCode
}
dispatch_group_leave(group)
})!.resume()
dispatch_group_wait(group, DISPATCH_TIME_FOREVER)
//rest of your code...如果现在可以的话,请告诉我
https://stackoverflow.com/questions/30830902
复制相似问题