SORU
28 Mayıs 2009, PERŞEMBE


Neden Objective-C delegeler genellikle yerine atama tutma özelliği verilmiştir?

Harika blog Scott Stevenson tarafından sürdürülen üzerinden sörf yapıyorum, ve bir temel anlamaya çalışıyorum Objective-C kavramı atama delege 'özelliği vs''. korumak atamak Not, hem de çöp toplanan bir ortamda aynıdır. Non-GC tabanlı bir ortam çoğunlukla endişeliyim (örn: iPhone).

Scott doğrudan blogu:

"Sözcüğünü doğrudan örnek değişkene değer atayan bir pasör ya da kopyalama istinat yerine üretecektir atayın. Bu NSİnteger ve CGFloat, ya da doğrudan sizin değil nesneler, delegeler gibi ilkel türler için daha hayırlıdır."

Doğrudan kendi size bir temsilci nesne nedir? Ben genellikle eğer onları uçuruma gitmek istemiyorum eğer, beni korumak için onu halleder çünkü benim delegeler korur. Ben genellikle UİTableViewController ilgili veri kaynağı ve temsilci de uzak soyut. Ben de belirli bir nesneyi korumak. Hiç benim UİTableView her zaman onun etrafında temsilci var o kadar uzağa gider emin olmak istiyorum.

Biri daha Objective-C kullanarak 2.0 programlama bu ortak paradigma anlayabiliyorum nerede yanıldığımı açıklamak, korumak yerine delege özellik atayabilir mi?

Teşekkürler!

CEVAP
28 Mayıs 2009, PERŞEMBE


Siz delegeler istinat kaçının sebebi döngüsü korumak önlemek için ihtiyaç vardır:

Oluşturur bir B Bir B temsilci olarak kendisi ayarlar ... Bir sahibi tarafından yayınlandı

Eğer B korunur vardı, Bir B var, böylece Bir şey dealloc hiç aramadı alacağı olarak piyasaya neden olmazher ikisi de Bir ve Bsızıntı için.

Uzak B sahibi çünkü Bir gidiş hakkında endişelenmenize gerek yok ve böylece dealloc içinde kurtulur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • soyacincautv

    soyacincautv

    14 NİSAN 2010
  • Stevie

    Stevie

    2 Mayıs 2010
  • Tina Chen

    Tina Chen

    26 Mayıs 2012