2012-02-24 130 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