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

  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006
  • Need for Speed

    Need for Spe

    8 ŞUBAT 2006