项目
我正在研究一个相对简单的基于导航控制器的iphone操作系统项目,它有一个根表视图和一个细节表视图。点击主列表中的某个项目,在推送表视图中查看其详细信息。
设置
我将两个视图的数据源分解为它们自己的对象,以免混淆视图控制器的用途。完成此操作后,表视图不再有数据源,因为这些方法现在位于单独的文件中,所以我在适当的xib文件中创建了每个数据源类的实例,其中包含对象项(将其拖入,然后设置其类)。然后,为了将tableview实际连接到它们的数据源,我在interface builder中将每个tableview的数据源出口设置为黄色的数据源对象。表视图代理仍设置为其视图控制器。
问题
根表视图工作得很好,但是当您点击一行以推送到详细视图时,数据源对象将按预期实例化,然后立即解除锁定,从而导致崩溃(numberOfSectionsTableView:对已释放的对象调用)。我不明白为什么数据源在我需要的时候会被自动释放
就在那时那里
对于详细视图,如接口生成器中的数据源对象创建和TableView连接所示。更令人费解的是,这种方法对根tableview非常有效!
问题
有没有什么明显的我遗漏的东西会导致这一切的发生?或者,这是为表视图控制器实例化数据源的正确方法吗?从
看法
控制器,它应该只与视图有关。我可以把所有东西都塞进两个表视图控制器类中,它可能会工作,但不会像我希望的那样模块化。
谢谢!