Soucis avec NSString
Bonsoir,
J'ai un souci avec une variable de type NSString qui est invariablement (c'est le cas de le dire) "invalid":
que je fasse :
NSString *myStr = [NSString stringWithString:@truc];
ou alors
NSString *myStr = [[NSString alloc] initWithString:@truc];
...myStr est tout le temps 'invalid" !?
Les autres membres de la classe se portent comme des charmes..
J'avoue que je ne pige pas dans quel tapis je me prends les pieds...
Une idée ?
Merci !!
Pinus
J'ai un souci avec une variable de type NSString qui est invariablement (c'est le cas de le dire) "invalid":
que je fasse :
NSString *myStr = [NSString stringWithString:@truc];
ou alors
NSString *myStr = [[NSString alloc] initWithString:@truc];
...myStr est tout le temps 'invalid" !?
Les autres membres de la classe se portent comme des charmes..
J'avoue que je ne pige pas dans quel tapis je me prends les pieds...
Une idée ?
Merci !!
Pinus
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
ou truc ...
Doc de initWithString:
Important: Raises an NSInvalidArgumentException if aString is nil.
J'ai essayé de déclarer et initialiser une NSURL : pareil.
Donc ça doit merder plus haut. Comme je ne trouve pas d'info valable sur google, je dégage ma classe et je recommence :-)
On va bien voir...
puis :
la classe est instanciée et utilisée comme suit :
Perdu je suis... ;-) Merci de votre aide !!
A noter que l'on peut faire aussi des initialisations dans d'autres méthodes comme -(void)awakeFromNib où l'on est sur que la totalité des xib sont désarchivés.
Il faut commencer par DataDevNote *myDevNote = [[DataDevNote alloc] init];
puis affecter les valeurs aux properties myDevNote.bugID = self.bugID; ...
et à priori tu n'as pas besoin de redéfinir la méthode init, puisque les initialisations sont faites à la création de l'instance dans le code ci-dessus.
Malheureusement, ça ne fonctionne pas mieux, impossible d'initialiser quelque variable que ce soit. C'est vraiment très bizarre car j'ai des classes semblables, instanciées de la même façon, qui ne posent aucun problème.
pinus
Sans doute qu'elles héritent directement de NSObject, auquel cas [super init] se contente de renvoyer self.
En fait je viens de m'apercevoir que xCode ciblait "Simulator 3.0 Release" et non "Simulator 3.0 debug". En remettant sur "Debug", tout est rentré dans l'ordre..
Je suis resté collé là dessus pendant 5 heures : Il me reste beaucoup, beaucoup à apprendre.
Merci pour votre aide précieuse !!
pinus
Une fois de retour en mode debug, tout est OK. Lorsque je survole les variables, je n'ai plus "invalid". Pour le mode release (je ne savais pas j'avais quitté le mode debug), en effet cela fonctionnait peut-être, mais je ne voyais rien dans le debuger: c'est peut-être normal ?
Exemple : Je sais d'expérience sur ma machine que le code C va écrire b=2009 parce que la variable b va être allouée juste après a.
Oui, je vais réécrire ça au propre, car je ne suis pas rassuré. Cela dit, ce n'est pas une appli qui a vocation à être distribuée. C'est un projet "prétexte" pour apprendre..
Pour info si tu tapes "init" puis la touche <esc> dans Xcode, il va te proposer de t'insérer un modèle tout prêt pour la méthode init. (vive les TextMacros). Et au moins ce modèle est formaté proprement avec la bonne façon de faire une méthode init.