在应用程序中,我正在拉一个JSON数组并使用它来填充UITableView:
class TableViewController: UITableViewController, NSURLConnectionDelegate {
var tableData: [AnyObject] = []
// ...
func connectionDidFinishLoading(connection: NSURLConnection!) {
var dataAsString = NSString(data: data, encoding: NSUTF8StringEncoding)
var err: NSError
var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
// After parsing JSON...
tableData += json as Array
tableView.reloadData()
tableView.scrollToRowAtIndexPath(NSIndexPath(index: tableData.count - 1), atScrollPosition: UITableViewScrollPosition.Top, animated: true)
}
// ...
}
调用scrollToRowAtIndexPath
的最后一行导致信号SIGABRT。评论该行修复了它。我是iOS开发的新手,所以任何帮助都会非常感激。提前谢谢。
答案 0 :(得分:2)
您应该使用以下代码:
NSIndexPath(forRow: tableData.count - 1, inSection: 0) //O in section: if tableView has only one section
而不是:
NSIndexPath(index: tableData.count - 1)
传递给表视图的索引路径必须包含两个指定节和行的索引。
答案 1 :(得分:0)
您从未在scrollToRowAtIndexPath之前检查数据是否包含任何数据。它可能为空,在这种情况下tableData.count -1 = -1