2009-07-07 13 views
9

से मैं एक ऑब्जेक्टिव-सी वर्ग पर कार्यावधि में एक विधि आह्वान कर सकते हैं कैसे जब सब मैं यह है स्ट्रिंग के रूप में हस्ताक्षर है रनटाइम पर लेकिन तर्कों की संख्या तय होती है - इस उदाहरण में से एक।एक ऑब्जेक्टिव-सी विधि लागू नाम

उत्तर

26

आप निम्न की तरह कुछ का उपयोग कर सकते हैं:

SEL selector = NSSelectorFromString(methodName); 
[myObject performSelector:selector]; 

वहाँ भी performSelector:withObject: हैं, और performSelector:withObject:withObject: तरीकों यदि आप पैरामीटर भेजने की जरूरत है।

+10

जब आपको 2 से अधिक पैरामीटर की आवश्यकता होती है तो एनएसआईएनवोकेशन के बारे में न भूलें। – dreamlax

+0

यदि आप 'प्रदर्शन चयनकर्ता: withObject:' का उपयोग करते हैं, तो अपने विधि नाम को कोलन के साथ समाप्त करना सुनिश्चित करें। एक कोलन के बिना विधि का नाम किसी पैरामीटर के साथ एक विधि से मेल खाता है। –

+0

धन्यवाद [सपने देखने] [http://stackoverflow.com/users/10320/dreamlax)! यहां एक [पूर्ण उत्तर] (http://stackoverflow.com/a/313455/1121497) 'NSInvocation' के बारे में। –

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