Установка значения переменной экземпляра динамически - PullRequest
1 голос
/ 14 июня 2009

Я пытаюсь установить значение переменной экземпляра динамически во время выполнения в Objective-C. Предположим, у меня есть класс с именем stock, который имеет переменную цену экземпляра. У меня есть следующий код:

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, т.е. не установлен. У меня есть недвижимость, объявленная по цене. Так что [цена] должна правильно возвращать цену.

Может кто-нибудь сказать мне, что я здесь не так делаю?

Приветствие Нарен

1 Ответ

0 голосов
/ 14 июня 2009

Нашел проблему. Поскольку запас класса содержит цену переменной экземпляра, а также цену свойства, значение переменной экземпляра не было установлено. Скорее стоимость имущества. Это не сработает, так как свойство является методом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...