Thanks Brian, so I run your version downloaded from here, and break point on viewDidLoad and your stack trace is:
run application:
0 HomeController.viewDidLoad()
21 UIApplication
22 Main
23 Start
24 Start
print self.table from numberOfRowsInSection
Optional(<UITableView: 0x7fce3500ea00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001c36010>; layer = <CALayer: 0x6000012334e0>; contentOffset: {0, -88}; contentSize: {0, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x600001c6d620>>)
Optional(<UITableView: 0x7fce3500ea00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001c36010>; layer = <CALayer: 0x6000012334e0>; contentOffset: {0, -88}; contentSize: {0, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x600001c6d620>>)
Optional(<UITableView: 0x7fce3500ea00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001c36010>; layer = <CALayer: 0x6000012334e0>; contentOffset: {0, -88}; contentSize: {375, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x600001c6d620>>)
Optional(<UITableView: 0x7fce3500ea00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001c36010>; layer = <CALayer: 0x6000012334e0>; contentOffset: {0, -88}; contentSize: {375, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x600001c6d620>>)
Now if I create a post, viewDidLoad doesn't fire, but the post updates and the output is:
Optional(<UITableView: 0x7fce3500ea00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001c36010>; layer = <CALayer: 0x6000012334e0>; contentOffset: {0, -88}; contentSize: {375, 9972.6666666666642}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x600001c6d620>>)
So same pointer address, makes sense.
Run application:
stack trace is the same, with the output:
Optional(<UITableView: 0x7f8200812c00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001414270>; layer = <CALayer: 0x600001aae8e0>; contentOffset: {0, -88}; contentSize: {0, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x6000014961f0>>)
Optional(<UITableView: 0x7f8200812c00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001414270>; layer = <CALayer: 0x600001aae8e0>; contentOffset: {0, -88}; contentSize: {0, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x6000014961f0>>)
Optional(<UITableView: 0x7f8200812c00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001414270>; layer = <CALayer: 0x600001aae8e0>; contentOffset: {0, -88}; contentSize: {375, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x6000014961f0>>)
Optional(<UITableView: 0x7f8200812c00; frame = (0 0; 375 812); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x600001414270>; layer = <CALayer: 0x600001aae8e0>; contentOffset: {0, -88}; contentSize: {375, 0}; adjustedContentInset: {88, 0, 83, 0}; dataSource: <_UIFilteredDataSource: 0x6000014961f0>>)
now when I create a post, my viewDidLoad IS fired, with a stack trace of:
0 HomeController.viewDidLoad()
5 [UITableViewController TableView]
6 closure #1 in HomeController.fetchPosts()
7 closure #1 in Service.fetchPosts(completion:)
8 closure #1 in closure #1 in DataRequest.response<A>(queue:responseSerializer:completionHandler:)
17 UIApplicationMain
18 main
19 start
Enqued from (Thread 19)
0 dispatch_async
1 OS_dispatch_queue.async(group:qos:flags:execute:) ()
2 closure #1 in DataRequest.response<A>(queue:responseSerializer:completionHandler:)
Any ideas on that stack trace, where it's coming from?
Thanks