operations sur les NSString
Carmélide
Membre
bonjour à tous,
J'essaie de travailler sur une NSString qui contient "nom,prenom" et je voudrais l'afficher comme : "prenom nom".
Mon code compile mais ça bloque lors de l'utilisation de la fonction "substringWithRange", le debugger me dit que s_last est invalide.
Voici le code que j'utilise :
qu'est-ce que j'ai mal fait ? des références qui passent mal ?
merci de votre aide.
J'essaie de travailler sur une NSString qui contient "nom,prenom" et je voudrais l'afficher comme : "prenom nom".
Mon code compile mais ça bloque lors de l'utilisation de la fonction "substringWithRange", le debugger me dit que s_last est invalide.
Voici le code que j'utilise :
       NSString *ret_str, *ret_str_0;<br />        ret_str_0 = [nameTable objectAtIndex:n];<br /> //the string is initially displayed as LastName,FirstName<br /> //we have to format this before displaying<br /> NSUInteger sta=0, len = [ret_str_0 length];<br />        //je cherche la position de la virgule<br /> NSRange comma = [ret_str_0 rangeOfString:@","];<br /> NSString *s_last, *s_first;<br />        //Je cree une premiere string avec le nom, c'est ici que ça bloque<br /> s_last = [ret_str_0 substringWithRange:NSMakeRange(sta, comma.location)];<br />        //Je cree une seconde string avec le prenom, pareil<br /> s_first = [ret_str_0 substringWithRange:NSMakeRange(comma.location, len-comma.location-2)];<br /> ret_str=[s_first stringByAppendingString:s_last];<br />
qu'est-ce que j'ai mal fait ? des références qui passent mal ?
merci de votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
(la location c'est le début du NSRange et il se met en premier)
Essaie cela :
NSString *ret_str, *ret_str_0;
ret_str_0 =@Lemercier , Jean-Nepomucène;
NSArray * components=[NSString componentsSeparatedByString:@,];
retStr=[NSString stringWithFormat:@%@ , %@",components[0],components[1];
(Je me suis fait griller par Philippe, ou bien ?)
Yes, un quart de seconde d'avance ... payé par l'erreur que j'ai commise : components[0] au lieu de [components objectAtIndex:0]
bon alors j'ai pas compris puisqu'un clean de ma version a suffit pour que ca fonctionne... ???
et pour revenir sur :
"sta" etant le debut de la chaine et "comma.location" la position de la virgule, je pense que tout etait dans le bon ordre :
NSMakeRange(0, 8)
C'est rageant, mais parfois, le make est fainéant: Il ne veut pas recompiler le source alors qu'il devrait. Souvent, mettre le dossier Build à la poubelle va plus vite !