J'ai suivi le chapitre 8 de Hillegass pour y implémenter l'application RaiseMan. Puis j'ai décidé de suivre le même processus pour implémenter le code pour un exercice dans une classe de programmation Cocoa que je prends, mais j'ai reçu le message d'erreur très cryptique suivant après la construction et l'exécution.Dans Xcode Document App: Pourquoi la méthode init de MyDocument serait-elle appelée deux fois?
Impossible de créer BOOL de l'objet < _NSControllerObjectProxy: 0x100460e30> de la classe _NSControllerObjectProxy
Je ne sais pas ce que ce message d'erreur signifie. Faire une recherche Google a soulevé quelques hits, mais leurs remèdes semblaient être de faire des choses que je faisais déjà. J'ai regardé toutes les connexions et les affectations que j'ai faites dans Interface Builder et rien ne semble évidemment mal.
Je suis donc allé dans le débogueur et j'ai défini un point d'arrêt dans la méthode init de la classe MyDocument et il est appelé deux fois. Comment cela pourrait-il arriver? Que devrais-je rechercher pour que la méthode init soit appelée deux fois? La trace de la pile montre que init est appelée par les fonctions du système que nous n'avons pas écrites nous-mêmes. Pour comparaison, je suis retourné au projet qui suit le chapitre 8 de Hillegass et j'ai défini un point d'arrêt à l'intérieur de la méthode init de la classe MyDocument, et il est appelé une fois (ce à quoi on s'attendrait).