【问题标题】:UIScrollView _delegateScrollViewAnimationEnded crashUIScrollView _delegateScrollViewAnimationEnded 崩溃
【发布时间】:2015-08-19 17:10:54
【问题描述】:

我在 UIScrollView 中看到了崩溃,因为在 scrollView 完成动画之前委托已从内存中释放。

我知道这是原因,解决方案应该是在 UIScrollView 的委托遇到自己的 dealloc 调用时手动取消委托。我已经对我能找到的每个具有 UIScrollView 子视图的 viewController 执行了此操作,但崩溃仍然存在。我知道根本原因是 UIScrollView 的委托是分配而不是弱,我很好奇我是否可以以某种方式覆盖它(通过类别?)。

还有其他解决方案吗?

这是崩溃的转储,我觉得奇怪的是堆栈上的调用之一引用了 UITextView(它继承自 UIScrollView),这是否可以提供有关有问题的 UIScrollView 位置的线索?

Crashed: com.apple.main-thread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0xc1a9e521
0 libobjc.A.dylib objc_msgSend + 5 respondsToSelector:
1 UIKit  -[UIScrollView(UIScrollViewInternal) _delegateScrollViewAnimationEnded] + 52
2 UIKit  -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:] + 184
3 UIKit  -[UITextView _scrollViewAnimationEnded:finished:] + 306
4 UIKit  -[UIAnimator stopAnimation:] + 476
5 UIKit  -[UIAnimator(Static) _advanceAnimationsOfType:withTimestamp:] + 304
6 UIKit  -[UIAnimator(Static) _LCDHeartbeatCallback:] + 52
7 QuartzCore CA::Display::DisplayLinkItem::dispatch() + 98
8 QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 366
9 IOMobileFramebuffer IOMobileFramebufferVsyncNotifyFunc + 90
10 IOKit IODispatchCalloutFromCFMessage + 256
11 CoreFoundation __CFMachPortPerform + 132
18 UIKit    UIApplicationMain + 1440

【问题讨论】:

  • 当对象即将释放时设置 scrollView.delegate = nil
  • 是的,我对每个我能想到的包含滚动视图的委托对象都这样做了,但崩溃仍然存在。有没有办法识别它是哪个对象?我无法在 sim 中重现这一点,所以必须依靠设备崩溃。
  • @JimmyXu 你得到解决方案了吗?
  • @meteors 是的,看起来我们错过了一些 UIScrollView 子类,这些子类也需要在 dealloc 上将其代表设置为 nil。具体是 UITextView。

标签: ios objective-c uiscrollview


【解决方案1】:

这可能与以下问题相同。 基本上将UIScrollViewdelegate设置为nil in dealloc

Unable to find reason for Crash on -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:]

【讨论】:

    猜你喜欢
    • 2013-03-24
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    相关资源
    最近更新 更多