滚动视图委托崩溃

时间:2015-03-26 13:02:26

标签: ios objective-c uikit

我在关于UIKit的碰撞学中报告了很多崩溃事件。特别是scrollView委托。它看起来像这样:

-[UIScrollView(UIScrollViewInternal) _delegateScrollViewAnimationEnded]
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000000000010

还有其他UIScrollView(UIScrollViewInternal)_delegate *方法有时会崩溃。我无法重现,因为它没有在崩溃日志中的任何地方指定我的应用程序,我不知道这将是什么。我现在最好的猜测是,这可能发生在应用程序的不同位置。

因为它是委托上的BAD_ACCESS我认为委托在实际的scrollview或tableview之前被解除分配?即使使用ARC,这也可能导致崩溃?由于代表是星期。该应用程序有很多scrollviews / tableviews / collectionviews所以只需查看代码手动尝试找到错误似乎是一个长镜头。这个问题的一个问题是委托通常是拥有scrollview / tableview的视图控制器。在那种情况下,视图控制器可以在它的视图和视图子视图之前解除分配吗? 任何经历相同或相似的人?任何想法或建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

UIScrollView委托并不弱,它是ARC之前的遗产并使用assign。

因此,如果委托被取消分配,则会导致BAD_ACCESS。确保将委托设置为nil以避免这种情况。

关于这个主题的好读物:http://inessential.com/2015/05/27/how_not_to_crash_6_properties_and_acce