2011-08-31 17 views
5

IBAction ifadelerinde gönderen nesnelerini işlemek için iki yaklaşım görüyorum. İlk şuna benzer:IBAction'a gönderici gönderen kimliği veya belirli bir sınıf olarak

-(IBAction)buttonPressed:(id)sender{ 
UIButton*someButton=(UIButton*)sender; 
//do something with someButton.tag or whatever 
} 

Başka görünüyor kolay:

-(IBAction)buttonPressed:(UIButton*)sender{ 
    //do something with sender.tag or whatever 
    } 

bilirseniz ben genellikle Bir stili diğer tercih etme sürümü 2. belirli bir neden tercih sadece bir düğme olacak o bu yönteme mi gönderilecek?

Ben şey bir gönderici olabilir eğer bir düğme gibi, sürüm 1 iyi nerede bulunduğunu görmek veya değiştirmek ya da sürgü vb Ama tag gibi UIButton özellikleri arıyorsanız o kadar fark varsa yapmaz olabilir göndereniniz UIButton değil. Yani sürüm 2 çok daha basit görünüyor.

Sadece ben ikinci sürümünü kullanarak bir sorun göremiyorum sürüm 1.

+0

herhangi bir fark yapmaz, ama bazen çok farklı nesneler için aynı eylemi kullanan ve kullandığınız hangisinin hangisinin doğru olduğunu seçmek için etiket, bu yüzden gerçekten ihtiyaçlarınızı bağlıdır. Arayüz Oluşturucu sadece umursamıyor. –

cevap

4

tercih bariz bir neden eksik olmadığını görmek istedim. Genellikle ikinci sürümü kullanıyorum, sadece gönderenin birden fazla nesne türü olması durumunda ilk sürümü kullanıyorum. Daha sonra, yöntem, ne tür bir nesneyi bilmesi gerekiyorsa, yöntem göndericiyi belirli bir türe göndermeden önce göndereni sorgulayabilir.

Hatta daha sık gönderene erişmek için gerek bulmak, bu yüzden sadece kullanın:

- (IBAction)buttonPressed { 
    // Do something. 
} 
+0

Buna katılıyorum. Geriye cevap vermeniz gerekmedikçe göndereni kapalı bırakmanız yeterlidir. –

İlgili konular