Dans mon application, lorsque je change de vue, après environ la 4ème fois que je change de vue, j'obtiens un crash qui dit :
*** -[CALayer retain]: message envoyé à une instance désaffectée 0x6c4ba0
J'ai NSZombieEnabled dans Xcode et il me pointe cette ligne à chaque fois qu'il change de vue:
[self.view removeFromSuperview];
Aussi, si je fais une backtrace du (gdb) cela me donne ceci :
#0 0x37dd68a0 in ___forwarding___ ()
#1 0x37d31680 in __forwarding_prep_0___ ()
#2 0x37d1d026 in CFRetain ()
#3 0x37d26bb2 in +[__NSArrayI __new::] ()
#4 0x37d26acc in -[__NSPlaceholderArray initWithObjects:count:] ()
#5 0x3518e680 in -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] ()
#6 0x3518e7a4 in -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] ()
#7 0x3534c40c in __UIViewWillBeRemovedFromSuperview ()
#8 0x3518dad0 in -[UIView(Hierarchy) removeFromSuperview] ()
#9 0x000368a6 in __block_global_1 (.block_descriptor=, finished=1 '\001') at /Users/bobsComputer/Desktop/Projects/NewApp/MyApp/MyApp3/MyApp3ViewController.mm:135
#10 0x351a70be in -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:] ()
#11 0x351a181a in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] ()
#12 0x351a6fb8 in -[UIViewAnimationState animationDidStop:finished:] ()
#13 0x3354fba6 in CA::Layer::run_animation_callbacks ()
#14 0x37a91f7a in _dispatch_main_queue_callback_4CF$VARIANT$mp ()
#15 0x37da72dc in __CFRunLoopRun ()
#16 0x37d2a4dc in CFRunLoopRunSpecific ()
#17 0x37d2a3a4 in CFRunLoopRunInMode ()
#18 0x378a8fcc in GSEventRunModal ()
#19 0x351ba742 in UIApplicationMain ()
Aussi voici comment je change de vues, j'ai un contrôleur de vue principal. Ensuite, j'utilise un parent de vue et des protocoles pour appeler ces méthodes depuis mes autres contrôleurs de vues. Ensuite, j'utilise des animations personnalisées d'UIView pour changer de vues.
Est-ce que quelqu'un a des idées sur la raison de ce crash ?
Merci !