我正在尝试以编程方式在tableview中选择一个单元格。我在点击selectRowAtIndexPath时遇到SIGABORT错误。 myIndex的值为1.我从一个已实现所需tableview委托和数据源方法的viewController中调用它。
override func viewDidAppear(animated: Bool) {
if myIndex != nil {
self.myTableView.selectRowAtIndexPath(NSIndexPath(index: myIndex), animated: false, scrollPosition: UITableViewScrollPosition.Middle)
}
}
答案 0 :(得分:3)
注意控制台中的错误消息 - 它们在大多数时候都非常有用。当您运行代码时,您将看到消息:
***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'索引路径无效 与UITableView一起使用。传递给表视图的索引路径必须包含 恰好有两个索引指定了section和row。请使用 如果可能,在UITableView.h中的NSIndexPath上的类别。
其中描述了问题是什么以及如何解决它 - 您应该为NSIndexPath使用不同的初始化程序
self.myTableView.selectRowAtIndexPath(NSIndexPath(forRow: 1, inSection: 0), animated: false, scrollPosition: .Middle)
答案 1 :(得分:2)
selectRowAtIndexPath将需要一个包含行和节的indexPath。不只是一个索引。