2016-02-29 38 views
2

我想以編程方式在tableview中選擇一個單元格。點擊selectRowAtIndexPath時出現SIGABORT錯誤。 myIndex的值爲1.我從一個已經實現了所需的tableview委託和數據源方法的viewController調用它。在tableview上調用selectRowAtIndexPath時發生Swift錯誤

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

你確定嗎? – Siriss

回答

3

注意控制檯中的錯誤信息 - 它們在大多數時間都非常有用。當你運行你的代碼,你會看到消息:

***終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,理由是:「無效的指數路徑 與UITableView的使用。傳遞給表視圖的索引路徑必須包含 恰好兩個指定節和行的索引。如果可能的話,請在UITableView.h的NSIndexPath上使用 類別。

,描述兩個什麼問題,以及如何解決它 - 細胞是你應該使用不同的初始值設定NSIndexPath

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

*優秀*答案!我即將發佈類似的東西,但我無法更好或更完整地解釋它。 (投票)。 –

+0

謝謝。我只是想出瞭如何顯示錯誤控制檯。有關於調試和/或閱讀錯誤控制檯的好教程嗎?謝謝 – branimal

+0

對不起,不能指向好的教程,可能是這個會幫助 - http://www.raywenderlich.com/28289/debugging-ios-apps-in-xcode-4-5。您還可以觀看前幾年調試過的wwdc視頻,其中有很多很好的見解 – Vladimir

2

selectRowAtIndexPath將需要一個包含行和節的indexPath。不只是一個索引。

相關問題