我在UITableView上遇到UICollectionViews这个间歇性崩溃问题。
我有一个导航控制器,其根视图控制器具有:
当我推入导航控制器并来回弹出时发生崩溃。这种情况发生在我推动和弹出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
答案 0 :(得分:25)
我认为在处理过渡动画时,iOS 8上有一个关于UITableViewController
(或UIViewController
包含UITableView
)dealloc
dealloc
的时间安排的错误。不知何故,视图控制器已经被取消分配,但表格视图仍在尝试向其委托发送消息。
作为一种变通方法,您可以在UITableViewController
上实施- (void)dealloc
{
self.tableView.delegate = nil;
self.tableView.dataSource = nil;
}
方法,如下所示:
{{1}}