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

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • TechBalance

    TechBalance

    12 HAZİRAN 2011
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007