2010-07-24 20 views
5

bir temsilci kullanmanız nerede bunları kullanmak bir program neden sonra, bir temsilci olmadan çalıştırabilirsiniz ben bazı küçük delege olmadan görüşlerini .... oluşturdukneden ve objektif c

bir yeni iPhone programcı değilim . İhtiyaçları olan şey, net delege sahip bazı programlar gördüm.

Kafam karıştı, lütfen cevap verin.

+0

http://stackoverflow.com/questions/3183146/what-do-mean-by-delegate-in-iphone-application ve http://stackoverflow.com/questions/645449/how-to- ile ilgili olası kullanım-özel-temsilciler-hedef-c –

+0

Ayrıca bkz http://stackoverflow.com/questions/1349706/little-confused-on-delegates-in-objective-c –

cevap

10

Temsilciler, bazı nesnelerin bir şeyler olduğunda başka bir nesneyi bildirmesine izin veren bir kalıptır. Çok sayıda temsilci yöntemi, sırasıyla bir olayın gerçekleşmesinden önce ve sonra çağrılan "irade" veya "did" ile başlar.

Bir UITableView ürününe sahip olduğunuzu varsayalım ve kullanıcının bir hücreye ne zaman dokunduğunu bilmek isteyebilirsiniz, böylece onların seçimini gerçekleştirebilirsiniz. Delege yöntemi tableView:didSelectRowAtIndexPath: uygulayan tablo görünümüne bir temsilci atarsınız.

Bu yaklaşımla ilgili güzel şeyler, tablo görünümünün, bu diğer temsilci nesnenin ne olduğunu veya nasıl çalıştığını bilmesi veya önemsemesi olmamasıdır. Olayları üreten nesnenin odaklanmış ve temiz kalmasını sağlar, sadece kendi durumuyla ilgilenir. Önemli bir şey yaptığında, temsilci için bir mesaj gönderecektir. Ve delege nesnesinin, diğer nesnenin içsel durumu hakkında herhangi bir şey bilmesi gerekmiyor. Sadece önemli bir şey yaptığını bilmek gerekiyor.

Bu da iPhone SDK kuyu için Model/Görünüm/Denetleyici (MVC) yaklaşımına uyar. Görünüm sadece kendini nasıl gösterdiği konusunda endişelenmeli ve denetleyici, nesnelerin ne zaman değiştiğine dair görüşün bir temsilcisidir.

Delegeler ile programlama yapmak istenen bir dil özelliği değil Objective-C. Bu sadece SDK'nın biraz kullandığı bir tasarım deseni. Ancak, kodunuzu temiz tutmaya yardımcı olabilecek oldukça iyi bir desen.

+0

teşekkürler çok mch – Saawan