ios – UIScrollView内部一致性崩溃

我正在努力解决这个间歇性的崩溃问题在我的UITableView有UICollectionViews.

我有一个导视控制器,其根视图控制器有:

> UITableView 3节
>每个部分有一行
>每行都有一个UICollectionView
> UITableView的顶行(它是一个集合视图)是根据NSTimer自动滚动的.

当我进入导航控制器并弹出来时,发生崩溃.当我推出3-4次时,会发生这种情况

痕迹:

Thread 0 Crashed:
0   libobjc.A.dylib                 0x38f74626 objc_msgSend + 6
1   UIKit                           0x312a6740 -[UIScrollView(UIScrollViewInternal) _notifyDidScroll] + 60
2   UIKit                           0x31020798 -[UIScrollView setContentOffset:] + 600
3   UIKit                           0x312a76b6 -[UIScrollView(UIScrollViewInternal) _adjustContentOffsetIfNecessary] + 1394
4   UIKit                           0x310d33d2 -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 414
5   UIKit                           0x310d322a -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:] + 26
6   UIKit                           0x310d31e2 -[UIScrollView removeFromSuperview] + 26
7   UIKit                           0x31001952 -[UIView dealloc] + 374
8   CoreFoundation                  0x2e700140 CFRelease + 556
9   CoreFoundation                  0x2e70b668 -[__NSArrayM dealloc] + 156
10  libobjc.A.dylib                 0x38f79b66 objc_object::sidetable_release(bool) + 170
11  libobjc.A.dylib                 0x38f7a0ce (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 354
12  CoreFoundation                  0x2e70347c _CFAutoreleasePoolPop + 12
13  CoreFoundation                  0x2e798f0e __CFRunLoopRun + 1310
14  CoreFoundation                  0x2e703724 CFRunLoopRunSpecific + 520
15  CoreFoundation                  0x2e703506 CFRunLoopRunInMode + 102
16  GraphicsServices                0x336726ce GSEventRunModal + 134
17  UIKit                           0x3106486c UIApplicationMain + 1132
18  BoatSenzeDev                    0x00110648 main (main.m:16)
19  libdyld.dylib                   0x39468ab4 start + 0

解决方法

我认为在处理转换动画时,在iOS 8上有一个关于UITableViewController(或者含有UITableView)的解决方案的UIViewController)的时机的错误.视图控制器已经被取消分配,但是表视图仍然尝试向其委托发送消息.

作为解决方法,您可以在UITableViewController上实现dealloc方法,如下所示:

- (void)dealloc
{
    self.tableView.delegate = nil;
    self.tableView.dataSource = nil;
}

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...