Когда я запускаю этот код он работает нормально, но когда я запускаю его в dispatch_async
он получает сообщение об ошибке в функции tableViews numberOfRowsInSection
массив получает ноль НОД
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {
self.data = self.dataOfJson("http://192.168.1.100/practice/studentCourseSelection.php?ID=\(NSUserDefaults.standardUserDefaults().objectForKey("currentUser")!)")
self.RefreshTableView()
}
func RefreshTableView()
{
dispatch_async(dispatch_get_main_queue()){
self.tableView.reloadData()
}
}
func dataOfJson(url:String) -> NSArray
{
var jsonArray : NSMutableArray = []
let data = NSData(contentsOfURL: NSURL(string : url)!)
jsonArray = try! NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as! NSMutableArray
return jsonArray
}
Вы можете попробовать изменить 'return self.data.count', чтобы' return self.data.count ?? 0' –
Показать ваш код! Что такое 'self.dataOfJson'? Как ваш код реализует 'numberOfRowsInSection' и два других Больших Вопроса? – matt
, когда self.data равно нулю, вызывающий счетчик для nil вызывает EXC_BAD_INSTRUCTION RED ERROR. вы должны проверить, не так ли? – Cruz