我必須使用聯合包含一個類指針,但與ARC上,並很好地解釋這裏:__unsafe_unretained NSString struct var你必須設置字段__unsafe_unretained
。__unsafe_unretained和釋放與ARC
這意味着,如果我理解得很好,就必須管理自己的生命週期。
例如:
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
了?
謝謝!即使它看起來相當棘手... – Zaphod
技術上正確,但對我的口味稍微ha ... ......正如我在我的回答中所說,我只是持有一個添加。強烈的指針,並做到這一點:D –
@robmayoff是的,這就是我要去嘗試... – Zaphod