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.
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 –
Ayrıca bkz http://stackoverflow.com/questions/1349706/little-confused-on-delegates-in-objective-c –