Zayıf başvurular (__güvensiz_unretained) ARK altında nesneler için NSArray
Döngüleri önlemek korumak için bir NSArray nesnelere zayıf başvurular saklamak için ihtiyacım var. Kullanmak için doğru sözdizimi emin değilim. Bu doğru yol mu?
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];
İOS 4 desteği gerekiyor unutmayın.xböylece __unsafe_unretained
yerine __weak
.
EDİT(2015-02-18):
O __weak
doğru işaretçileri kullanmak isteyen (__unsafe_unretained
) için, lütfen bu soru yerine çıkış: Collections of zeroing weak references under ARC
CEVAP
Jason dediği gibi, NSArray
zayıf başvurular deposu yapamazsın. Bunun için zayıf bir başvuruyu saklar, başka bir deyişle, bir nesne içinde sarma Emile önerisi uygulamak için en kolay yolu şudur:
NSValue *value = [NSValue valueWithNonretainedObject:myObj];
[array addObject:value];
Başka bir seçenek: NSMutableArray
yapan category isteğe bağlı olarak depolamak zayıf başvuruyor.
Bu "güvensiz" başvurular, kendini sıfırlama, zayıf başvuruları. unretained unutmayın Eğer dizi nesneleri kaldırıldı sonra hala etrafında ise, önemsiz göstericiler bir grup olacak.
Nasıl özel nesneler ile bir NSMutableA...
İBOutlets ARK altında güçlü ya da zayı...
Nasıl NSArray için NSMutableArray dönü...
Nasıl bir NSArray alfabetik olarak sır...
Nasıl durum çubuğunun altında ActionBa...