1

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

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

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

self.scrollview.delegate = nil

有效辞去代表职务。这消除了问题。

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

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

4

1 回答 1

1

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

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

我不认为我们犯了设计错误。

于 2014-03-28T14:32:34.483 回答