x
является свойством Foo
, а не переменной. Свойство - это просто сокращение для пары методов get / set. У него нет адреса как такового, и поэтому его нельзя передать, как вы пытаетесь.
Самый простой способ обойти локальную переменную:
float d = foo.x;
[staticClass bar:&d];
foo.x = d;
Также обратите внимание, что вы используете &
, а не *
, чтобы получить адрес переменной.