macro: la variable et son nom

tabliertablier Membre
je veux sauver dans les userDefaults des NSString avec comme clef le nom de chaque NSString (une trentaine).
donc:
NSString *str1, *str2, .......    ;
........
  [mesDefauts setObject:str1  forKey:@str1] ;
  [mesDefauts setObject:str2  forKey:@str2] ;
.........
Je n'arrive pas à  écrire une macro qui me fasse cela directement. J'ai essayé:
#define sauverStrng(Xyz) [deffo setObject:(Xyz)  forKey:@(Xyz)]
ça ne marche pas. Pour que ça marche, ma macro et les appels deviennent:
#define sauverStrng(Xyz,nom) [deffo setObject:(Xyz)  forKey:@nom]

  sauverStrng(str1,"str1");
  sauverStrng(str2,"str2");
Je suis donc obligé d'écrire deux fois le nom de chaque string!!
Connaissez-vous une astuce pour ne l'écrire qu'une fois?

Réponses

  • zoczoc Membre
    janvier 2010 modifié #2
    <br /><br />#define sauverStrng(Xyz)&nbsp;  [deffo setObject:(Xyz)&nbsp; forKey:@#Xyz]<br /><br />
    


    # construit une chaine contenant la valeur du paramètre de la macro

    ;)
  • tabliertablier Membre
    19:11 modifié #3
        Vite répondu, bien répondu!  Merci, je vais essayer tout de suite.

    Ou trouve-t-on la liste de ce type de syntaxe?
  • AliGatorAliGator Membre, Modérateur
    19:11 modifié #4
  • tabliertablier Membre
    19:11 modifié #5
    Ok, merci.  Je vais y faire un tour!
Connectez-vous ou Inscrivez-vous pour répondre.