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

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • mist64

    mist64

    30 Mayıs 2006
  • rtisticsdev

    rtisticsdev

    31 Mayıs 2012