Swift 在 tableview 上调用 selectRowAtIndexPath 时出错

Swift Error when calling selectRowAtIndexPath on tableview

我正在尝试以编程方式 select 表格视图中的单元格。我在点击 selectRowAtIndexPath 时收到 SIGABORT 错误。 myIndex 的值为 1。我从 viewController 调用它,它实现了所需的 tableview 委托和数据源方法。

override func viewDidAppear(animated: Bool) {
    if myIndex != nil {
        self.myTableView.selectRowAtIndexPath(NSIndexPath(index: myIndex), animated: false, scrollPosition: UITableViewScrollPosition.Middle)
    }
}

selectRowAtIndexPath 需要一个包含行和部分的 indexPath。不仅仅是一个索引。

注意控制台中的错误消息 - 它们在大多数时候都非常有用。当您 运行 您的代码时,您会看到消息:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid index path for use with UITableView. Index paths passed to table view must contain exactly two indices specifying the section and row. Please use the category on NSIndexPath in UITableView.h if possible.

它描述了问题是什么以及如何解决它 - 您应该为 NSIndexPath 使用不同的初始化程序

self.myTableView.selectRowAtIndexPath(NSIndexPath(forRow: 1, inSection: 0), animated: false, scrollPosition: .Middle)