我的视图层次结构如下: UIView,包含一个UIView,它包含一个UIScrollView,它包含一组xib加载的视图。
(加载xib的视图代表滚动内容,并且都是相同xib的实例。)
当设备上发生内存警告时(至少,我认为这与我有关),我在堆栈跟踪中得到以下异常:
System.MissingMethodException:找不到MonoTouch.UIKit.UIScrollView + _UIScrollViewDelegate ::。ctor(System.IntPtr)的构造函数
我熟悉故障排除常见问题解答:“当代码尝试实例化您从Interface Builder文件引用的类的实例时,会在运行时生成此错误。这意味着您忘记添加构造函数将一个IntPtr作为参数。“
然而,这不是我在这里的情况 - 并且xib的控制器确实实现了所提到的构造函数。当然,堆栈跟踪是指UIScrollView - 而不是我的一个类。
有什么想法吗?
答案 0 :(得分:1)
您允许UIScrollView收集垃圾,而它仍然存在于视图中。当发生这种情况时,我们用于生成事件的隐藏类似乎也是可收集的,并且被销毁。
只要您想继续在其上引发事件,就应该保留对UIScrollView的托管引用。