UIScrollView crash de coinheritance interna

Estoy luchando con este problema de falla intermitente en mi UITableView que tiene UICollectionViews.

Tengo un controller de navigation cuyo controller de vista raíz tiene:

  1. UITableView con 3 secciones
  2. Cada sección tiene una fila
  3. Cada fila tiene una UICollectionView
  4. La fila superior de UITableView (que es una vista de colección) se realiza para desplazarse automáticamente en function de NSTimer.

El locking se produce cuando presiono el controller de navigation y salgo de un lado a otro. Sucede cuando presiono y presiono 3-4 veces

La huella:

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 

Creo que hay un error en alguna parte en iOS 8 con respecto a la temporización de UITableViewController (o plain UIViewController contiene un UITableView ) dealloc cuando se trata de animaciones de transición. De alguna manera, el controller de vista ya está desasignado, pero la vista de tabla aún intenta enviar posts a su delegado .

Como solución alternativa, puede implementar el método dealloc en el UITableViewController así:

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