我需要在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];
Run Code Online (Sandbox Code Playgroud)
请注意,我需要支持iOS 4.x,__unsafe_unretained
而不是__weak
.
编辑(2015-02-18):
对于那些想要使用真__weak
指针(不是__unsafe_unretained
)的人,请查看这个问题:在ARC下归零弱引用