UIKit: [UIViewController mutableChildViewControllers] crash? UIKit: [UIViewController mutableChildViewControllers] crash? xcode xcode

UIKit: [UIViewController mutableChildViewControllers] crash?


It sounds like the user got a low-memory warning. UINavigationControllers will retain their views, whereas tabbed ones will pop off the invisible ones. However, the low memory code is still getting called. Check your warning handlers prior to reaching that spot. Also, test by hitting "Simulate Memory Warning" under the hardware menu at all entry and exit points.http://forums.macrumors.com/showthread.php?t=876419 shows a mess of what happens when you don't.iphonedevsdk.com/forum/iphone-sdk-development/14225-uinavigationcontrollers-and-didreceivememorywarning.html has a nice comment or so on how to handle this.

I'm betting your view controller loads something and caused the memory warning. Ensure the user can't just stack tons of items on top of each other, and make sure your app is profiled to remove as many leaks as necessary to keep the app up.

The above may not be on the mark, but should be related.

Final note, don't use ARC. Something that disallows calling superclass functions is bound to screw up. If you understand bridging Core Foundation, then perhaps ARC is fine. I personally avoid it at all costs b/c memory becomes randomly handled by Apple's under-the-hood. I've seen their stuff fail way too much


I got it! I had the same problem too and in your code it looks like that a button is pressed, which causes the crash!

Last Exception Backtrace:0   CoreFoundation                  0x338958bf __exceptionPreprocess + 1631   libobjc.A.dylib                 0x303891e5 objc_exception_throw + 332   UIKit                           0x31259749 -[UIViewController mutableChildViewControllers] + 13   UIKit                           0x31259349 -[UINavigationController pushViewController:animated:] + 374   MyApp                           0x000081e5 -[MyListController tableView:didSelectRowAtIndexPath:] (MyListController.m:207)5   UIKit                           0x312d3565 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 9456   UIKit                           0x3134bce7 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 159

Here is my suggestion:

Two things to solve a SIGABRT:

1) SIGABRT happens due to a runtime exception that isn't caught. When this happens there is some info written to the debugger console or the device console that explains the exact reason for the exception. You haven't shown us this text. It starts "Terminating application due to ..."

Show us that text.

2) If you run your app in the debugger and set a breakpoint on the exception throw function the app will stop when the exception is thrown and this will usually be enough to figure it out. Go to the debugger breakpoint pane and at the bottom left is a control that when clicked allows you to set an exception breakpoint.