我有一个简单的导航控制器应用程序,它显示来自PHP服务的一个MySQL查询的一些结果,该查询将结果编码为JSON。 我的问题是,当请求在一个视图控制器内部启动并且未完成时(通常具有缓慢的互联网连接,例如边缘),如果用户导航回来并且请求结束应用程序崩溃!
这是在bugged函数中调用的委托函数:
func itemsDownloaded(items: NSArray) {
feedItems = items
self.listTableView.reloadData()
if(feedItems.count == 0){
alertNoResults(self)
}
}
这是应用程序的功能
func parseJSON() {
var jsonResult: NSMutableArray = NSMutableArray()
do{
/* Parse with error control */
if let jsonObject: AnyObject = try NSJSONSerialization.JSONObjectWithData(self.data, options:NSJSONReadingOptions.AllowFragments) {
if let mutablearray = jsonObject as? NSMutableArray {
/* there are results */
jsonResult = mutablearray
} else {
/* there are nothing to show */
}
} else {
/* parse error */
}
/* Parse senza controllo errori */
} catch let error as NSError {
print(error)
}
var jsonElement: NSDictionary = NSDictionary()
let locations: NSMutableArray = NSMutableArray()
for i in 0 ..< jsonResult.count{
jsonElement = jsonResult[i] as! NSDictionary
let categoria = OTestCatModel()
//questo controllo si assicura che nessuno dei risultati abbia valore nullo
if let id = jsonElement["id_cat"] as? String,
let nome = jsonElement["categoria"] as? String
{
/* Controllo che i campi siano not null */
if id != ""{
categoria.id = id
} else{
categoria.id = "0"
}
if nome != ""{
categoria.nome = nome
}else{
categoria.nome = "-"
}
}
locations.addObject(categoria)
}
dispatch_async(dispatch_get_main_queue(), { () -> Void in
/* Here is the crash */
self.delegate.itemsDownloaded(locations)
})
}
This is the app problem screenshot
请帮助我,我无法弄清楚这个问题!
答案 0 :(得分:0)