クラスポインタを含むユニオンを使用する必要がありますが、ARCがオンであり、ここで非常によく説明されています。__ unsafe_unretained NSStringstructvarフィールドを設定する必要があります__unsafe_unretained
。
つまり、私がそれをよく理解しているのであれば、あなたはそのライフサイクルを自分で管理しなければならないということです。
例えば:
typedef union FOO {
char __char;
__unsafe_unretained NSMutableArray * __array;
__unsafe_unretained BarClass * __bar;
}
私が次のようなことをした場合:
FOO * foo = malloc(sizeof(FOO));
foo.__bar = [[BarClass alloc] init];
... // I have fun with foo.__bar
[foo.__bar release] // this was before ARC and does not work anymore
free(foo);
どうすればリリースできfoo.__bar
ますか?ARCでは電話がかけられなくなったのでしょうかrelease
。autorelease