J'ai créé deux contrôleurs de vue, disons A
et B
avec storyboard et ARC. VC A
appelle B
par performSegueWithIdentifier
et B
revient à A
par dismissViewControllerAnimated
. Cela fonctionne bien, jusqu'à ce que je simule un Memory Warning
pendant que je suis dans VC B
. Si je fais ça, mon application se bloque avecEXC_BAD_ACCESS dans le storyboard loadAffichage après l'avertissement de la mémoire
Thread 1: EXC_BAD_ACCESS (code=1, address=0x...)
Dès que je l'exercerai dismissViewControllerAnimated
. Pour le débogage j'ai ajouté mon propre loadView
à A
(juste avec un NSLog et [super loadView]
) et je peux voir, qu'il est appelé et l'application se bloque dans [super loadView]
.
Je sais, que la hiérarchie de vue de A
a été détruite causée par l'avertissement de la mémoire. Mais si je comprends la documentation, il devrait être automatiquement recréé quand il est accédé après dismissViewControllerAnimated
de B
. Au moment de loadView
non de mon code devrait fonctionner, tout sera initialisé dans viewDidLoad
et viewWillAppear
et aucun d'entre eux est appelé avant le crash. Est-ce que quelqu'un a des suggestions sur la façon de déboguer davantage, ou comment obtenir l'identité de la mauvaise adresse avant qu'elle ne devienne mauvaise?