De toute façon pour obtenir la chaîne de nom de variable?

Dire que j'ai ma classe

@interface Person : NSObject { NSString *name; }

J'ai besoin d'obtenir le nom de NSString est dans ma classe

Person *person = [[Person alloc] init];
NSLog(@"Name of variable %s\n", _NameofVariable_(person->name));

Merci pour les réponses, voici la solution que j'ai trouvé les réponses

//returns nil if property is not found
-(NSString *)propertyName:(id)property {  
    unsigned int numIvars = 0;
    NSString *key=nil;
    Ivar * ivars = class_copyIvarList([self class], &numIvars);
    for(int i = 0; i < numIvars; i++) {
        Ivar thisIvar = ivars[i];
        if ((object_getIvar(self, thisIvar) == property)) {
            key = [NSString stringWithUTF8String:ivar_getName(thisIvar)];
            break;
        }
    } 
    free(ivars);
    return key;
}  
  • vous devez également free(ivars), ou bien vous allez à la fuite de la matrice.
  • bonne prise, mis à jour pour refléter ce fait.
  • Ne cela il suffit de retourner le nom de la première de tout bien à la classe qui correspond à la valeur que vous transmettez? Exemple: gist.github.com/robskillington/684796bae2dd95592919
InformationsquelleAutor hacksignal | 2010-03-20