3

object_setInstanceVariable を使用して構造体変数を設定する方法を知っている人はいますか? 参照型では問題なく機能します。

object_setInstanceVariable(obj, "_variable", ref);

ただし、CGPoint などの構造体では機能しません。次の方法を試しました:

1. object_setInstanceVariable(obj, "_variable", point);
2. object_setInstanceVariable(obj, "_variable", &point);
3. object_setInstanceVariable(obj, "_variable", (void **)&point);

自分が何をしているのかよくわかりません (特に最後のステップについて)...

よろしくお願いします!!!

4

2 に答える 2

-1

わかりました、私は答えを見つけました。SELF アドレスと変数アドレスの違いを調べます。

NSLog(@"%d",self);
NSLog(@"%d",&variable);

たとえば、差は 24 です。次に、次のコードを記述します。

CGPoint *variable = (int)self + 24;
*variable = myCGPoint;

それがどれだけ汚いハックか説明することさえできません!!! しかし、それは機能します:)

助けてくれてありがとうジョディ、私はあなたの答えに親指を立てました

于 2012-09-04T15:15:02.157 に答える