2010-07-25 11 views
13

के साथ एक विधि का उपयोग कर @selector मैं एक विधि hideButtonकरते हैं: मानकों

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

और मैं एक त्रुटि "एक पद्धति के लिए पैरामीटर के रूप में किसी चीज़ का इस्तेमाल नहीं कर सकते" मिलता है।

मैं जब बुला इस

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

यह कैसे किया जा सकता है विधि को पैरामीटर के रूप बटन देने के लिए सक्षम होना चाहते हैं? क्योंकि उपर्युक्त प्रयास काम नहीं करता है। मुझे बटन को पैरामीटर के रूप में देने में सक्षम होना चाहिए या कम से कम इस विधि को जागरूक करना चाहिए कि कौन सा बटन 1 सेकंड के बाद छुपाया जा रहा है।

धन्यवाद

उत्तर

20

आप पैरामीटर पारित कर सकते हैं withObject पैरामीटर के माध्यम से चयनकर्ता रहे हैं:

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

ध्यान दें कि आप ज्यादा से ज्यादा 1 पैरामीटर इस तरह से पारित कर सकते हैं। यदि आपको अधिक पैरामीटर पारित करने की आवश्यकता है तो आपको इसके लिए NSInvocation कक्षा का उपयोग करने की आवश्यकता होगी।

संपादित करें: सही विधि घोषणा:

-(void) hideButton:(UIButton*) button 

आप पैरामीटर के अंदर डाल दिया जाना चाहिए प्रकार()। आपकी छुपा बटन विधि UIButton को पॉइंटर प्राप्त करती है, इसलिए आपको UIButton*

+0

धन्यवाद देना चाहिए। ऑब्जेक्ट को पैरामीटर के रूप में लेने के लिए hideButton विधि कैसे सेट की जाती है? अगर मैं उपरोक्त कोशिश करता हूं तो मुझे पैरामीटर त्रुटि/ – jarryd

+0

के रूप में ऑब्जेक्ट का उपयोग नहीं किया जा सकता है यह स्पष्ट नहीं है कि समस्या क्या है ... hideButton विधि परिभाषा ठीक है और इसे मेरे उत्तर के साथ ठीक से कहा जाना चाहिए ... पहले पैरामीटर में चयनकर्ता - आप प्रदान करते हैं चयनकर्ता हस्ताक्षर, ऑब्जेक्ट के साथ - ऑब्जेक्ट को चयनकर्ता को पास करने के लिए पैरामीटर के रूप में। – Vladimir

+0

किसी भी तरह से अगर मैं hideButton (UIButton) बटन को आज़माता हूं, तो मुझे एक त्रुटि मिलती है, और यदि मैं hideButton (UIButton) * बटन को आज़माता हूं तो मुझे एक त्रुटि मिलती है। मैंने (आईडी) का उपयोग करने की भी कोशिश की लेकिन ऐप त्रुटि पहचान के लिए भेजे गए अपरिचित चयनकर्ता के साथ दुर्घटनाग्रस्त हो गया। – jarryd

संबंधित मुद्दे