2009-06-14 7 views
1

J'essaie de définir la valeur d'une variable d'instance de manière dynamique à l'exécution en Objective-C. Supposons que j'ai une classe appelée stock qui a une variable d'instance prix flottant. Je le code suivant:Définition dynamique de la variable d'instance

stock* s; 
...//initialisation etc 
float newPrice = 12.56; 
Ivar variable = class_getInstanceVariable(NSClassFromString(@"stock"), "price"); 
float* pricePointer = (float*)((char *)c + ivar_getOffset(variable)); 
(*pricePointer) = newPrice; 
NSLog(@"%f", [s price]); 

La dernière ligne indique cependant toujours que le prix est 0.00 à savoir. pas encore défini. J'ai une propriété déclarée sur le prix. Donc, le prix devrait retourner le prix correctement. Est-ce que quelqu'un peut me dire ce que je fais mal ici?

Vive Naren

Répondre

0

trouvé le problème. Étant donné que le stock de classe contient le prix de la variable d'instance ainsi que le prix de la propriété, la valeur de la variable d'instance n'a pas été définie. Plutôt la valeur de la propriété. Cela ne va pas fonctionner car la propriété est une méthode.

Questions connexes