我需要在NSArray中存储对对象的弱引用,以防止保留循环.我不确定使用的语法是否正确.这是正确的方法吗?
Foo* foo1 = [[Foo alloc] init];
Foo* foo2 = [[Foo alloc] init];
__unsafe_unretained Foo* weakFoo1 = foo1;
__unsafe_unretained Foo* weakFoo2 = foo2;
NSArray* someArray = [NSArray arrayWithObjects:weakFoo1, weakFoo2, nil];
Note that I need to support iOS 4.x,因此是__unsafe_unretained
而不是__weak
.
EDIT (2015-02-18):
对于那些想要使用真正的__weak
分(不是__unsafe_unretained
分)的人,请判断这个问题:Collections of zeroing weak references under ARC分