重用视图控制器及其ivars,scrollviews,tableview

时间:2012-06-12 00:02:58

标签: ios cocoa-touch uitableview memory-management

聪明人,

一般问题,因为这里的代码太过分了。我明白我会得到一般答案。我只是希望得到更多关于在哪里寻找解决方案的想法。这是我的设置:

OpenGL view - "game view"
UIView - "city view"
ScrollView "city menu"
The scrollview uses 6 view controllers.
One viewController in scroll contains a tableView

当“玩家”进入“城市”时,会出现滚动视图并显示所有视图控制器,并且中提琴一切正常。

问题是当“玩家”离开“城市”并进入下一个城市时,视图控制器仍然包含来自最后一个“城市”的信息。

尽管如此:

  • 当“玩家”离开“城市”时,包含滚动视图的所有视图控制器的数组将设置为nil。

  • 当“玩家”进入新的“城市”时,同一数组被设置为新分配的数组。

  • 当viewWillDis出现时,视图控制器中的ivars设置为nil。

  • 视图控制器中的ivars在初始化期间设置为新数组。

  • 初始化视图控制器所有的ivars都在init期间重新初始化(我也尝试过在viewWillAppear中)。

  • tableView使用数组调用(前面提到的ivars)。

我感谢任何建议。

电子

  • 这让我如此疯狂的原因是,我明确地将我的数组与视图控制器分配给nil。应该释放所有这些对象。小人物。

解决:似乎某个数据阵列的保留计数在任何地方被任意减少。我唯一的猜测是,在tableView转换的某个地方,它会减少。感谢您的观点。

1 个答案:

答案 0 :(得分:0)

解决:似乎某个数据阵列的保留计数在任何地方被任意减少。我唯一的猜测是,在tableView转换的某个地方,它会减少。