Note that there are some explanatory texts on larger screens.

plurals
  1. POView Controller being sent a message even though it has been deallocated
    primarykey
    data
    text
    <p>I am not sure if something has changed in the iPhone SDK 3.0 but I am getting the strangest error. I have a view controller hierarchy where I switch between view controllers depending upon interface orientation. From what I can tell, the error is caused whenever I rotate the interface a view controller which has been deallocated is being sent a shouldAutorotateToInterfaceOrientation message. This is the backtrace for the error:</p> <pre><code>#0 0x01dc43a7 in ___forwarding___ #1 0x01da06c2 in __forwarding_prep_0___ #2 0x002e6733 in -[UIWindow _shouldAutorotateToInterfaceOrientation:] #3 0x002e6562 in -[UIWindow _updateToInterfaceOrientation:duration:force:] #4 0x002e6515 in -[UIWindow _updateInterfaceOrientationFromDeviceOrientation] #5 0x0004d63a in _nsnote_callback #6 0x01d8f005 in _CFXNotificationPostNotification #7 0x0004aef0 in -[NSNotificationCenter postNotificationName:object:userInfo:] #8 0x0045b454 in -[UIDevice setOrientation:] #9 0x002d6890 in -[UIApplication handleEvent:withNewEvent:] #10 0x002d16d3 in -[UIApplication sendEvent:] #11 0x002d80b5 in _UIApplicationHandleEvent #12 0x024c2ef1 in PurpleEventCallback #13 0x01d9bb80 in CFRunLoopRunSpecific #14 0x01d9ac48 in CFRunLoopRunInMode #15 0x024c17ad in GSEventRunModal #16 0x024c1872 in GSEventRun #17 0x002d9003 in UIApplicationMain #18 0x00002d50 in main at main.m:14 </code></pre> <p>The error that is getting printed to the Debug Console with NSZombieEnabled is:</p> <pre><code>2009-10-18 20:28:34.404 Restaurants[12428:207] *** -[ToolbarController respondsToSelector:]: message sent to deallocated instance 0x3b2b2a0 (gdb) continue Current language: auto; currently objective-c 2009-10-18 20:31:43.496 Restaurants[12428:207] *** NSInvocation: warning: object 0x3b2b2a0 of class '_NSZombie_BeltToolbarController' does not implement methodSignatureForSelector: -- trouble ahead 2009-10-18 20:31:43.496 Restaurants[12428:207] *** NSInvocation: warning: object 0x3b2b2a0 of class '_NSZombie_BeltToolbarController' does not implement doesNotRecognizeSelector: -- abort </code></pre> <p>What I can't understand is why the system is trying to message this controller even though it has been deallocated and is there a way to tell the system that the controller doesn't exist any longer.</p> <p>[UPDATE]: I have put together a sample project replicating the bug: <a href="http://www.bytesizecreations.com/project/ControllerSwitch.zip" rel="nofollow noreferrer">download</a></p> <p>Load up the app and then change the Simulator's orientation a few times from Landscape to Portrait and it should occur. I have tried the same piece of code on a physical phone and it behaves in exactly the same way, so this is not a simulator related issue.</p> <p>[UPDATE]: I have used up one of my support requests with Apple's technical team to see if they can help me get to the bottom of this. Will post the solution - if they have one - here. Thanks for the help so far.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload