NSArray de referências fracas (__unsafe_unretained) para objetos em ARC
Preciso armazenar referências fracas para objetos em um NSArray, para evitar ciclos de retenção. Não tenho certeza da sintaxe apropriada para usar. Esta é a forma correta
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];
Observe que eu preciso oferecer suporte ao iOS 4.x, Então, o__unsafe_unretained
ao invés de__weak
.
EDITA (2015-02-18):
Para aqueles que querem usar o verdadeiro__weak
ponteiros (não__unsafe_unretained
), verifique esta pergunta: Coleções de zerar referências fracas sob ARC