मैं एक फ़ंक्शन घोषित करना चाहता हूं जिसे मैं केवल एक विशिष्ट एनम केस के लिए उपयोग कर सकता हूं। उदाहरण के लिए मेरे पास CustomTextFieldTypes enum है। इसमें निम्नलिखित मामले और कार्य हैं।स्विफ्ट एनम फ़ंक्शंस
enum CustomTextFieldTypes {
case CardType
case CardNumber
case CardExpiryDate
case CardName
case CCVNumber
func inputCardNumber(cardNumber: String!, cardNumberTextField: XCUIElement?) {
cardNumberTextField?.typeText(cardNumber)
}
func inputCardCCVNumber(cardCCVNumber: String!, cardCCVNumberTextField: XCUIElement?) {
cardCCVNumberTextField?.typeText(cardCCVNumber)
}
}
अब मैं केवल CustomTextFieldTypes.CardNumber
मामले के लिए inputCardNumber(...)
समारोह कॉल करना चाहते हैं। मैं क्या कर सकते हैं निम्नलिखित ...
CustomTextFieldTypes.CardNumber.inputCardNumber(...)
लेकिन इसके साथ ही मैं यह कर सकता पर ...
CustomTextFieldTypes.CardExpiryDate.inputCardNumber(...) or
CustomTextFieldTypes.CardNumber.inputCardNumber(...)
मैं केवल CardNumber
मामले के लिए inputCardNumber(...)
समारोह कॉल करना चाहते हैं। एक और मामले से enum खुद नहीं। मुझे यह कैसे हासिल होगा? किसी भी मदद
संपादित- के लिए पहले से
धन्यवाद यहाँ मैं क्या कर रहा हूं पर कुछ पृष्ठभूमि है। मैं एक यूआई परीक्षण लिख रहा था जो टेक्स्ट फ़ील्ड में टेक्स्ट इनपुट करेगा। मैं इनपुट कोड को अपनी टेस्ट फाइल से दूर रखना चाहता था और मैंने enm और enum कार्यों के साथ "प्रयोग" शुरू किया। मैं सोच रहा था कि क्या मैं एक enum मामले के लिए स्पष्ट रूप से उपलब्ध एक समारोह हो सकता है। टिप्पणियों का निर्णय मैं यह नहीं कर सकता (मैंने ऑनलाइन जांच की लेकिन दूर नहीं मिली)। यह एक बुरा आर्किटेक्चर या कुछ भी नहीं है, मैं सिर्फ टेस्ट कोड को विभाजित कर रहा था ..
उत्तर देने के लिए सभी के लिए धन्यवाद।
आप क्या करने की कोशिश कर रहे हैं? और 'XCUIElement' का उपयोग क्यों करें? वे केवल –
परीक्षण के लिए हैं क्यों एक enum में एक समारोह डाल दिया? इसका क्या फायदा है? – Imbue
आप एक समारोह के लिए केवल एक समारोह के लिए उपलब्ध नहीं कर सकते हैं। Enum में कोई भी कार्य enum के हर मामले के लिए उपलब्ध है। आपके छोटे कोड स्निपेट से, ऐसा लगता है कि आपके पास आर्किटेक्चर समस्या है और संभवतः ऐसा करने के लिए एक बेहतर डिज़ाइन के साथ आ सकता है जो आप करना चाहते हैं। आपके पास कोई बेहतर सलाह देने के लिए पर्याप्त जानकारी नहीं है। – keithbhunter