【问题标题】:Cant load UITableView无法加载 UITableView
【发布时间】:2011-07-14 14:40:06
【问题描述】:

好的,这真的很简单,但是即使我阅读了 100 多个教程,我仍然不知道我的应用程序出了什么问题。我想要做的只是显示一个表格视图,即使是空的,但我在模拟器上得到一个黑屏并且在输出中也有一个异常。

这就是我做的(跟着几个教程一步一步):

  1. 打开基于视图的应用程序
  2. 这是我的标题:

         @interface TableViewsViewController : UIViewController <UITableViewDelegate> {
    
    
     IBOutlet UITableView *tblSimpleTable;
      }
    
     @property (nonatomic, retain) IBOutlet UITableView *tblSimpleTable;
    
     @end
    
  3. 除了合成之外没有在 .m 中做任何事情。

  4. IB:与文件所有者建立了 3 个连接:delegate、dataSource 和 tblSimpleTable。

是的,我是初学者,但这太荒谬了...感谢任何帮助。谢谢!

【问题讨论】:

  • 您在输出中遇到的异常是什么?
  • *** 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[TableViewsViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例 0x4b40480'

标签: iphone objective-c xcode uitableview view


【解决方案1】:

首先,表视图有两种“委托”类型——表视图委托和表视图数据源。您的界面是表格视图的委托,而不是数据源。

如果将 UITableViewDataSource 添加到界面,即

@interface TableViewsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

然后编译,您可能会收到有关缺少节数和单元格方法的错误。将这些添加到您的实现之后,表格视图应该可以工作了。

我的猜测是表格视图试图向您的班级询问表格中的部分数量,并且由于您的班级实际上并未响应该选择器,因此代码崩溃了。

【讨论】:

  • 是的,做到了。添加了 UITableViewDataSource 和相应的方法。谢谢!!
【解决方案2】:

添加

tblSimpleTable.delegate = self

在 viewDidLoad 中

...并确保您已在界面生成器中正确连接它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多