2012-02-24 115 views
0

我無法重新加載我的NSTableView。常規reloadData方法不起作用:nstableview刷新不起作用

[_tableView reloadData]; 

的NSTableView的填充應用程序啓動時正確。 tableview將其數據源和委託設置爲AppDelegate,並將tableView的引用出口也設置爲AppDelegate。

我對此很新 - 而且我不確定如何解決問題。環顧四周,我認爲我在IB中的連接可能不正確,但是我嘗試了許多不同的組合,並且它們都不會讓reloadData函數運行。我試圖將reloadData方法添加到我知道正在運行的其他函數,但是,它似乎運行reloadData並且什麼也不做 - 沒有任何錯誤或警告。

任何援助將不勝感激 - 我寧願提示如何實際解決問題,而不是解決方案 - 我不是在這裏免費代碼。 :)

+0

你認爲reloadData做什麼?當你添加一個新的對象到表中時,你正在使用它嗎? – 2012-02-24 01:52:43

+0

我期待reloadData重新加載表視圖中的數據。我正在使用FMDB的SQLite存儲,並在加載時填充表。是的,我打電話給[_tableView reloadData];在將項目添加到表格後立即進行。當我退出並重新啓動應用程序時,tableview具有新的entrie(s)。 – rick 2012-02-24 01:55:03

回答

1

我想通了 - 我的數組是在我的類的init方法中生成的。它應該在numberOfRowsInTableView方法中生成。 reloadTable被調用並正在工作,並且數組正在改變,但是,數組變量實際上並未被重新生成。

1

有些事情嘗試:

  • 驗證您的數據源將被調用。把破發點中的數據源,最好在以下地方:

    - numberOfRowsInTableView: - 的tableView:objectValueForTableColumn:行:

,並驗證這些函數被調用。

  • 驗證_tableView的DataSource設置爲是通過把一個斷點在-reloadData呼叫,並檢查該數據源是否正確設置你的提供數據的類。您可以通過運行做到這一點在調試器中執行以下操作:

    PO [_tableView數據源]

  • 驗證您的數據源的-numberOfRowsInTableView:方法返回一個數大於1這個更大的將確保有東西在桌子上給你看!

+0

感謝您的建議!我檢查了「numberOfRowsInTableView:」和「tableView:objectValueForTableColumn:row:」被其他人用NSLog語句正常調用(這是很好的做法?),numberOfRowsInTableView中的斷點顯示正確的行數(大於0)並且po [_tableView dataSource]返回我認爲是NSMutableArray源自的類的指針(?),它是AppDelegate,它也是運行此代碼的位置:「」。我希望這是有道理的。 – rick 2012-02-24 02:01:52

+0

當然,我真的只是想確保-numberOfRowsInTableView被調用。看起來這至少適合你。 – leecbaker 2012-02-24 02:14:57