【发布时间】:2017-05-03 09:37:26
【问题描述】:
我的 VC 中有这样的代码:
if Reachability.isConnectedToNetwork() == true {
print("Internet connection OK")
JSONParseFunc()
} else {
print("Internet connection FAILED")
let alert = UIAlertView(title: "you're not conneted to internet ", message: "make sure you're connected to server ", delegate: nil, cancelButtonTitle: "OK")
alert.show()
}
我在其中检查互联网的可达性,但我想检查服务器是否正在发送数据,我需要为此设置超时,我如何在这段代码中实现超时这是我的 JSON 函数:
func JSONParseFunc(){
let requestURL: NSURL = NSURL(string: "XXXXXXX")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(url: requestURL as URL)
let session = URLSession.shared
let task = session.dataTask(with: urlRequest as URLRequest) {
(data, response, error) -> Void in
let readableJSON = JSON(data: data! , options: JSONSerialization.ReadingOptions.mutableContainers, error: nil)
self.nrows = readableJSON.count
for i in 0...self.nrows{
if let Name = readableJSON[i]["Name"].string as String! {
var ID = readableJSON[i]["Id"].intValue
var iDString = String (ID)
var desc = readableJSON[i]["Description"].string as String!
self.iDArray.append(iDString)
self.description1.append(desc!)
self.namesArray.append(Name)
}
}
self.tableView.reloadData()
}
task.resume()
self.tableView.reloadData()
}
【问题讨论】:
-
(NS)URLRequest 有一个 timeoutInterval 属性 ...
-
我应该把它放在我的代码哪里?
-
你怎么看? – 你也可以考虑在 Swift 3 中使用
URLRequest而不是NSMutableURLRequest。 -
顺便说一句,看看Connect Without Preflight:建议在尝试建立连接之前检查互联网连接。
-
我可以先用我的主机名检查可访问性吗? @MartinR
标签: ios swift timeout reachability