के हस्ताक्षर का पता लगाएं मैं चयनकर्ता के हस्ताक्षर की जांच कैसे कर सकता हूं, या चयनकर्ता को पैरामीटर की आवश्यकता है या नहीं?चयनकर्ता
उदा। मैं कि क्या चयनकर्ता प्रकार का है जाँच करना चाहते -(void) method
या -(void) method:(id)param
के हस्ताक्षर का पता लगाएं मैं चयनकर्ता के हस्ताक्षर की जांच कैसे कर सकता हूं, या चयनकर्ता को पैरामीटर की आवश्यकता है या नहीं?चयनकर्ता
उदा। मैं कि क्या चयनकर्ता प्रकार का है जाँच करना चाहते -(void) method
या -(void) method:(id)param
आप देख सकते हैं इस respondsToSelector:
उपयोग करते हुए, यानी कुछ इस तरह:
if ([myObject respondsToSelector:@selector(doSomethingWithOneArgument:)]){
....
}
आप एक विशेष चयनकर्ता के बारे में जानकारी का एक बहुत कुछ प्राप्त कर सकते हैं NSMethodSignature
कक्षा के साथ:
id obj = ...
SEL selector = ...
NSMethodSignature *signature = [obj methodSignatureForSelector:selector];
NSUInteger args = [signature numberOfArguments];
int i;
for(i = 0; i < args; i++)
printf("argument type at index %d: %c", i, [signature getArgumentTypeAtIndex:i]);
'[[obj class] instanceMethodSignatureForSelector: selector] 'के रूप में लिखा जा सकता है' [obj methodSignatureForSelector: selector]' – user102008
ध्यान दें कि 'विधि' और' विधि: 'को एक अलग चयनकर्ता के रूप में माना जाता है। – Yuji
मुझे पूछना चाहिए; तुम क्या करने की कोशिश कर रहे हो?!? – bbum
मैं एक परीक्षण फ्रेमवर्क के रूप में इस्तेमाल किया गया एक ऐप लिख रहा हूं। – Egil