SORU
17 ŞUBAT 2012, Cuma


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
17 ŞUBAT 2012, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • KRQE

    KRQE

    6 AĞUSTOS 2007
  • LaKe Lightroom Tutorials

    LaKe Lightro

    22 Temmuz 2014