弹出时Scrollview继续触发scrollViewDidScroll

时间:2013-09-18 17:26:08

标签: objective-c uiview uiviewcontroller uiscrollview nsmanagedobjectcontext

当我弹出一个视图控制器时,它会继续发出一些流氓scrollViewDidScroll消息。这个委托的实现有时从我的NSManagedObjectContext中提取一些实体,这是该对象的属性。

但是,在删除滚动委托之前,上下文属性似乎为 。这导致最后几个滚动委托消息导致我的应用程序崩溃。

我已经确认这是根本原因,包括以下内容,就在弹出控制器之前:

self.scrollview.delegate = nil

有效辞职作为代表。这消除了这个问题。

这是正确的程序吗?我以前从未听说过这个问题。

注意:过去我遇到过与UIPickerView类似的问题,并以同样的方式解决了它。我可能会犯一些设计错误吗?

1 个答案:

答案 0 :(得分:1)

我刚刚遇到了同样的问题。

在弹出视图之前设置scrollview.delegate = nil也为我修复了问题,老实说我认为这不会是一件坏事,因为它可能有助于垃圾收集(我正在使用Xamarin,所以一个略有不同的垃圾收集器)。垃圾收集的时间可能是问题的根源。

我认为我们没有设计错误。