1
當我運行這段代碼,它工作正常,但是當我在dispatch_async
運行它,它在tableViews功能numberOfRowsInSection
Array獲取無GCD
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爲零時,調用count爲零會導致EXC_BAD_INSTRUCTION RED ERROR。你必須檢查是不是無 – Cruz