iOS 9 only UITableView crash on launch

I'm struggling to identify the source of a crash I'm seeing only on iOS 9. I'm seeing 40-ish crash reports from various models of iPhone, but never on the iPad. I've crawled through my entire Storyboard, UITableView by UITableView, and all of them have their delegate and datasource outlets properly connected to their owning UITableViewController. No instances of this crash on anything earlier than iOS 9.


Anybody out there see a crash like this, or know what changes in iOS 9 might be causing it?


Application Specific Information:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource is not set'



Last Exception Backtrace:

0 CoreFoundation 0x0000000182ce7f94 __exceptionPreprocess + 124

1 libobjc.A.dylib 0x000000019768bf2c objc_exception_throw + 52

2 CoreFoundation 0x0000000182ce7e64 +[NSException raise:format:arguments:] + 104

3 Foundation 0x0000000183c1bab4 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 108

4 UIKit 0x0000000188635b40 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 604

5 UIKit 0x0000000188635ce8 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 76

6 UIKit 0x0000000188626890 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2648

7 UIKit 0x000000018863a910 -[UITableView _performWithCachedTraitCollection:] + 100

8 UIKit 0x00000001883e3e78 -[UITableView layoutSubviews] + 172

9 UIKit 0x00000001882f64fc -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 620

10 QuartzCore 0x0000000187b32d04 -[CALayer layoutSublayers] + 144

11 QuartzCore 0x0000000187b2d920 CA::Layer::layout_if_needed(CA::Transaction*) + 288

12 QuartzCore 0x0000000187b2d7e0 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 28

13 QuartzCore 0x0000000187b2ce80 CA::Context::commit_transaction(CA::Transaction*) + 248

14 QuartzCore 0x0000000187b2cbd4 CA::Transaction::commit() + 512

15 QuartzCore 0x0000000187b2634c CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 76

16 CoreFoundation 0x0000000182c9ef44 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 28

17 CoreFoundation 0x0000000182c9ccbc __CFRunLoopDoObservers + 368

18 CoreFoundation 0x0000000182c9d0ec __CFRunLoopRun + 924

19 CoreFoundation 0x0000000182bc9800 CFRunLoopRunSpecific + 380

20 GraphicsServices 0x000000018dc57170 GSEventRunModal + 176

21 UIKit 0x00000001883625e8 UIApplicationMain + 200

22 Lightbow 0x000000010005ee20 main (main.m:16)

23 libdyld.dylib 0x0000000197ec68b8 start + 0

I encountered the same issue when popping a view controller that contained a tableview to return to another view controller with a tableview, with the ANIMATED parameter set to NO.


i.e. calling either of the methods below:

[self.navigationController popViewControllerAnimated:NO]

[self.navigationController popToViewController:aViewController animated:NO];


When I set ANIMATED to YES, the crash disappeared. The tableview datasources were always set through a .xib, and this was also occurring only on iOS 9.

iOS 9 only UITableView crash on launch
 
 
Q