1
Objective-Cで実行時にインスタンス変数の値を動的に設定しようとしています。 インスタンス変数float priceを持つ、株式と呼ばれるクラスがあるとします。 は、私は、次のコードを持っている:インスタンス変数の値を動的に設定する
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]);
最後の行は、しかし、常に価格は0.00すなわちであることを示しています。設定されていません。 私は価格で宣言された物件を持っています。だから価格は正しく返されるはずです。
誰でも私がここで間違っていることを教えてもらえますか?
乾杯 Naren