(je veux obtenir le chemin que je puisse charger des images dans un NSImageView)
Vous n'avez pas besoin le chemin de votre exécutable pour le faire. Le moyen le plus simple est NSImage's imageNamed:
method; le deuxième plus facile est ce que St3fan a suggéré.
Maintenant, nous allons passer par les problèmes dans votre mise en œuvre de la dure:
NSString * _Ruta_APP = [[NSString alloc] init];
Ceci déclare une variable locale nommée _Ruta_APP
et initialise à tenir un objet NSString, que vous possédez parce que vous avez créé avec alloc
et ne l'ai pas libéré. Cela place un objet chaîne différent dans la même variable, en remplaçant le premier. Si vous n'utilisez pas la récupération de place, alors ce premier objet est toujours vivant et vous le possédez toujours, même si vous n'avez plus le moyen de lui envoyer des messages. Ainsi, vous l'avez divulgué.
Si vous vouliez avoir _Ruta_APP
comme variable d'instance, coupez la première ligne entière. C'est généralement une mauvaise idée de conserver des objets que vous ne possédez pas dans vos variables d'instance, alors prenez possession de cet objet; le mieux serait de faire une copie (après cela, vous possédez la copie) et de mettre cela dans la variable d'instance. Autrement, quand tout ce que possède l'objet original le libère, l'objet mourra, mais vous le garderez toujours; alors vous enverrez un message à un objet mort, ce qui plantera votre application. Voir the memory management rules.
Si vous vouliez avoir _Ruta_APP
en tant que variable locale, pas dans d'autres méthodes, coupez la variable d'instance.
celui-ci a fait l'affaire – Freaktor
je veux dire l'autre braket et la copie. – Freaktor
En fait, il y a quelques détails de cette réponse qui "ont fait l'affaire". Je suggère que vous vous efforciez de comprendre les détails des différences du code dans la réponse et votre code d'origine, sinon vous risquez de répéter les mêmes erreurs encore et encore. – bbum