2009-06-14 16 views
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

答えて

0

は、問題を発見しました。 クラス在庫にはインスタンス変数とプロパティ価格が含まれているため、インスタンス変数の値は設定されていませんでした。むしろプロパティの価値。これはプロパティがメソッドであるため動作しません。

関連する問題