Initialisation d'un nouveau NSString

yodarkyodark Membre
06:19 modifié dans API AppKit #1
Bonjour à  tous !

J'ai un petit souci avec les strings

J'ai une fonction dans un objet

+ (NSString *) stringCleaning:(NSString *) stringToClean {<br />	<br />	<br />	return&nbsp; stringToClean<br />}


Maintenant je voudrais créer dans une de mes classe un string en appelant cette méthode

NSString * string=[NSString stringWithString:[MonObjet stringCleaning:@hello texte a cleaner]];

Mais lorsque je fais ça j'ai une erreur

defined symbols:<br />&nbsp; &quot;_OBJC_CLASS_$_MonObjet&quot;, referenced from:<br />&nbsp; &nbsp; &nbsp; __objc_classrefs__DATA@0 in AboutViewController.o<br />ld: symbol(s) not found<br />collect2: ld returned 1 exit status




Réponses

  • AliGatorAliGator Membre, Modérateur
    06:19 modifié #2
    Alors je ne sais pas si tu respectes les conventions de nommage Apple, si c'est le cas ça sous-entend que MonObjet, commençant par une majuscule, est bien une classe (contrairement à  ce que son nom avec "Objet" laisse sous-entendre, lui) ou une instance de classe (dans ce cas les conventions disent qu'il faut que ça commence par une majuscule, c'est une des conventions Apple qu'on respecte quasiment uniformément dans le monde du dev Apple au point que quand tu poses une question sur un forum en mettant du code cela est souvent un fait acquis ^^)...

    En tout cas stringCleaning est défini dans son implémentation comme une méthode de classe ("+") et non une méthode d'instance. Déjà  est-ce le cas dans ton .h aussi ? Si non, il faut uniformiser tout ça.
    Et du coup, voir si ton "MonObjet" est le nom d'une de tes classes ou si c'est une variable représentant une instance d'une autre classe ? Selon le cas, ton appel n'est pas forcément bon. En tout cas de toute façon il y a une incohérence qqpart ;)
  • yodarkyodark Membre
    06:19 modifié #3
    Okay pardon pour ce manque de clareté

    MoObjet est bien le nom d'une classe MonObjet.h et MonObjet.m

    MonObjet.m
    + (NSString *) stringCleaning:(NSString *) stringToClean {<br />	<br />	<br />	return&nbsp; stringToClean<br />}<br />
    


    MonObjet.h
    + (NSString *) stringCleaning:(NSString *) stringToClean ;
    


    C'est juste ? Mon appelle ne convient pas  ?
  • BaardeBaarde Membre
    06:19 modifié #4
    L'erreur au moment de l'édition des liens vient très certainement du fait que le fichier MonObjet.m n'est pas inclus à  la compilation. Dans le détail des fichiers, il faut s'assurer que la case à  cocher tout à  droite est bien cochée.
  • yodarkyodark Membre
    06:19 modifié #5
    C'est exactement ça merci !
Connectez-vous ou Inscrivez-vous pour répondre.