Tuesday, 15 January 2013

swift - Dynamically performing an action based on string passed in textfield -


कहें कि मेरे पास टेक्स्टफ़ाइल - inputTextField है और एओआई पर एक बटन actionActionDynamically < / कोड>, एक ही कक्षा में मैं दो कार्यों को परिभाषित करता हूं: 1. प्रथमअंक , 2. secondFunc , अब मैं यह व्यवहार प्राप्त करना चाहता हूं:

यदि पाठकों में उपयोगकर्ता के प्रकार "फर्स्टफन्क" और फिर वह बटन पर टैप करता है, इसे firstFunc फ़ंक्शन का आह्वान करना चाहिए, और यदि वह टेक्स्टफ़ील्ड में "secondfunc" टाइप करें और फिर बटन पर नल तो इसे secondFunc < कोड> फ़ंक्शन।

उद्देश्य-सी में मैं आसानी से इसे सीडडोकाइड का पालन करके प्राप्त कर सकता हूं:

  1. भीतर performActionDynamically pass inputTextField में NSSelectorFromString () चयनकर्ता प्राप्त करने के लिए
  2. आमंत्रित करें performSelector: withObject: स्वयं संबंधित कार्य करने के लिए
  3. < / Ol>

    केवल एक चीज जो मैं एक ही व्यवहार को तेजी से लागू करने में सोच सकता हूं -

    1. Defin कुंजी के लिए मूल्य के रूप में एक शब्दकोश में क्लोजर को संग्रहीत करें - 'firstFunc' और 'secondFunc' क्रमशः नाम से , secondFunc > नाम के साथ दो क्लोजर
    2. Li>
    3. टेक्स्टफ़ील्ड में मूल्य के आधार पर शब्दकोश से संबंधित समापन प्राप्त करें
    4. प्राप्त बंद करने के लिए आमंत्रित करें

    क्या इच्छित व्यवहार प्राप्त करने का कोई बेहतर तरीका है? कृपया गाइड।

आप इस तरह से कुछ कोशिश कर सकते हैं:

  if स्वयं। चयनकर्ता (चयनकर्ता स्ट्रिंग) (चयनकर्ता (चयनकर्ता स्ट्रिंग)) {NSTimer.scheduledTimerWithTimeInterval (NSTimeInterval (0), लक्ष्य: स्वयं, चयनकर्ता: चयनकर्ता (inputTextField.text), userInfo: शून्य, दोहराता है: गलत)}  
< P> यह एक कॉलबैक के रूप में किया जाता है, इसलिए आपको इसे ध्यान में रखना होगा।


अगर आप चाहें तो NSTimer के बजाय NSThread का उपयोग कर सकते हैं:

  NSThread.detachNewThreadSelector (चयनकर्ता (inputTextField.text), toTarget: स्वयं, withObject: शून्य)  

No comments:

Post a Comment