【问题标题】:UITableViews dataSource methods doesn't get calledUITableViews dataSource 方法没有被调用
【发布时间】:2012-09-08 00:37:55
【问题描述】:

我想将我的数据源放在与控制器不同的文件中,但它不起作用。方法 cellForRowAtIndexPath、numberOfRowsInSection 和 numberOfSectionsInTableView 不会在我的其他文件中调用。我已将其设置为使用 dataSource 协议,并且在我的控制器的 viewDidLoad 中我有这个[self.tableView setDataSource:dataModel];
我不明白为什么它不起作用。您可以将 dataSource 设置为与 interfacebuilder 中的 viewController 不同的文件吗?但由于 viewDidLoad 中的 setDataSource,它应该可以工作。也许还有其他问题?

【问题讨论】:

  • 我想我们会希望看到更多的代码。你确实检查过 dataModel 不是 nil 吗?
  • 另外,-viewDidLoad 甚至被调用了吗?您可以在 Interface Builder 中创建一个对象,将其类型设置为您的自定义类,然后将 tableViewdataSource 出口连接到该对象,顺便说一句。
  • 感谢@onnoweb,我在分配对象之前设置了数据源。如果您留下真实答案,我可以将其设置为我接受的答案。
  • 按照建议添加了我的评论作为答案。

标签: objective-c xcode uitableview datasource


【解决方案1】:

你设置为dataSource的时候有没有检查dataModel不为nil?

【讨论】:

    【解决方案2】:

    您可以使用作为类扩展的类别将控制器设置在不同的文件中。我不确定您是否要使用您的控制器从您的帖子中获取数据源。

    在任何情况下,您仍然需要通过在非 nil 对象上使用 setDataSource 方法设置对象委托来定义您的委托。在您的情况下,如果您的对象为零,则自 sending messages to nil is silently ignored 以来,您的 UITableView 对象将不会调用任何内容。

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 2011-02-07
      • 2014-06-02
      • 2011-08-28
      • 2017-02-24
      • 2015-02-23
      • 2013-12-19
      • 1970-01-01
      相关资源
      最近更新 更多