当我弹出一个视图控制器时,它会继续发出一些流氓scrollViewDidScroll
消息。这个委托的实现有时从我的NSManagedObjectContext
中提取一些实体,这是该对象的属性。
但是,在删除滚动委托之前,上下文属性似乎为 。这导致最后几个滚动委托消息导致我的应用程序崩溃。
我已经确认这是根本原因,包括以下内容,就在弹出控制器之前:
self.scrollview.delegate = nil
有效辞职作为代表。这消除了这个问题。
这是正确的程序吗?我以前从未听说过这个问题。
注意:过去我遇到过与UIPickerView类似的问题,并以同样的方式解决了它。我可能会犯一些设计错误吗?
答案 0 :(得分:1)
我刚刚遇到了同样的问题。
在弹出视图之前设置scrollview.delegate = nil也为我修复了问题,老实说我认为这不会是一件坏事,因为它可能有助于垃圾收集(我正在使用Xamarin,所以一个略有不同的垃圾收集器)。垃圾收集的时间可能是问题的根源。
我认为我们没有设计错误。