我想声明一个只能用于单个特定枚举情况的函数。
例如,我有 CustomTextFieldTypes 枚举。这有以下案例和功能。
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(...)
函数。不是来自另一种情况的枚举本身。我如何实现这一点?
在此先感谢您的帮助
编辑 - 这是我正在做的事情的一些背景。我正在编写一个 UI 测试,它将文本输入到文本字段中。我想让输入代码远离我的测试文件,因此我开始使用枚举和枚举函数进行“实验”。我想知道我是否可以为枚举案例明确提供一个函数。从评论来看我不能这样做(我在网上查过但没走多远)。这不是一个糟糕的架构或任何东西,我只是拆分测试代码..
谢谢大家的回复。
最佳答案
您可以对 self
进行切换,以便在某些情况下执行某些代码。这是一个例子:
enum CustomTextFieldTypes {
case cardType
case cardNumber
case cardExpiryDate
case cardName
case ccvNumber
func inputCardNumber(cardNumber: String!, cardNumberTextField: XCUIElement?) {
switch self {
case .cardNumber:
cardNumberTextField?.typeText(cardNumber)
default:
return
}
}
}
关于ios - Swift 枚举函数仅适用于枚举的单个案例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39044657/