2010-07-25 28 views
13

geçirildiği bir yöntem kullanılarak @selector I, bir "bir yönteme parametre olarak bir nesneyi kullanmak" hatası elde hideButtongerçekleştirmek: parametreleri

-(void) hideButton:(UIButton) *button { 
[button setHidden:YES]; 
} 

ve bir yöntem vardır.

Bu

[self performSelector:@selector(hideButton:smallestMonster1) 
withObject:nil afterDelay:1.0]; 

Bu nasıl yapılabilir çağrılırken yöntemine parametre olarak düğmeye vermek isterler? Yukarıdaki girişim işe yaramadı. Düğmeyi bir parametre olarak verebilmem veya en azından, 1 saniye sonra hangi düğmenin gizlendiğini bildiren yöntemi kullanabilmem gerekir. Parametresini geçebilir

Teşekkür

cevap

20

withObject parametresi yoluyla seçiciye: Eğer en fazla 1 parametresini bu şekilde geçebilir

[self performSelector:@selector(hideButton:) withObject:smallestMonster1 afterDelay:1.0]; 

Not. Daha fazla parametre aktarmanız gerekirse, bunun için NSInvocation sınıfını kullanmanız gerekecektir.

Düzenleme: Doğru yöntem bildirimi:

-(void) hideButton:(UIButton*) button 

İçinde parametre tipi koymak gerekir(). HideButton yönteminiz UIButton'a işaretçiyi alır, bu yüzden UIButton*'u

+0

'a koymalısınız. HideButton yöntemi nesneyi parametre olarak almak için nasıl ayarlanır? Eğer ben deneyin deneyin hata/ – jarryd

+0

parametre hatası olarak nesne kullanamazsınız sorun nedir ... hideButton yöntemi tanımı tamam ve cevap benim cevap ile düzgün bir şekilde çağrılmalıdır ... 1. parametre performSelector - sağlayın seçici imza, withObject içinde - seçiciye geçmek için bir parametre olarak nesne. – Vladimir

+0

Her iki durumda da hideButton (UIButton) düğmesini kullanmayı denerim, bir hata alıyorum ve hideButton (UIButton) * tuşunu kullanmaya çalışırsam bir hata alıyorum. Ben de (id) kullanmayı denedim ama uygulama örnek hatayı gönderilen tanınmayan seçici ile çöker. – jarryd