iOS在热门测试中保留了视图树?

时间:2011-11-09 15:16:39

标签: iphone ios retain hittest

我的应用程序中有一个“神秘”保留,我能够在简化中重现它。 我有一个视图层次结构如下:

  • 基本视图(UIView):
    • 主视图(UIView):
      • Button1(UIRectButton)
    • 种类菜单(UIView):
      • Button2(UIRectButton)

当我按 button1 时,会创建类 MyView 的新视图(我们将其命名为以图像显示),并将其作为子视图添加到主视图 MyView UIView 的直接子类,它只会跟踪保留,释放和自动释放(调用 super ,ofcourse)。因此,带图片的视图会被保留,这没关系。

之后我按 button2 。这就是“神秘”发生的地方。

当我触摸按钮时,在我能想到的任何回调(包括 touchesBegan )被调用之前,带有图像的视图会再次被保留。调用堆栈显示它来自系统命中测试。然后没有发布。也不是自动释放。

在iOS 5模拟器和设备上测试。

看起来我忽略了什么。我做错了什么?

修改

发现奇数保留不会破坏任何东西,并且会在适当的时候由iOS发布,例如在设置superview(新的或相同的)时要查看。但我仍然想知道,第二次保留的原因是什么?

0 个答案:

没有答案