gpt4 book ai didi

ios - 如何基于多个 UISwitch 状态设置更可维护的做事方式?

转载 作者:行者123 更新时间:2023-11-29 05:49:53 25 4
gpt4 key购买 nike

因此,我目前正在创建一个密码生成器,并设置 if 语句的每个组合,检查启用了哪些开关,并根据这些组合执行一些编码和维护很烦人的操作。

@objc private func mainButtonAction() {
mainLabel.text = ""
if secondViewController.lowercaseLettersToggle.isOn == true && secondViewController.uppercaseLettersToggle.isOn == false && secondViewController.numbersToggle.isOn == false && secondViewController.specialCharactersToggle.isOn == false {
let lowercaseOnlyArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
mainLabel.text?.append(lowercaseOnlyArray.randomElement()!)
} else if secondViewController.lowercaseLettersToggle.isOn == false && secondViewController.uppercaseLettersToggle.isOn == true && secondViewController.numbersToggle.isOn == false && secondViewController.specialCharactersToggle.isOn == false {
let uppercaseOnlyArray = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
mainLabel.text?.append(uppercaseOnlyArray.randomElement()!)
} else if secondViewController.lowercaseLettersToggle.isOn == false && secondViewController.uppercaseLettersToggle.isOn == false && secondViewController.numbersToggle.isOn == true && secondViewController.specialCharactersToggle.isOn == false {
let numberOnlyArray = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
mainLabel.text?.append(numberOnlyArray.randomElement()!)
} else if secondViewController.lowercaseLettersToggle.isOn == false && secondViewController.uppercaseLettersToggle.isOn == false && secondViewController.numbersToggle.isOn == false && secondViewController.specialCharactersToggle.isOn == true {
let specialCharactersOnlyArray = ["`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "_", "+", "=", "[", "{", "]", "}", "\\", "|", ";", ":", "'", "\"", ",", "<", ".", ">", "/", "?"]
mainLabel.text?.append(specialCharactersOnlyArray.randomElement()!)
} else if secondViewController.lowercaseLettersToggle.isOn == true && secondViewController.uppercaseLettersToggle.isOn == true && secondViewController.numbersToggle.isOn == false && secondViewController.specialCharactersToggle.isOn == false {
let lowercaseAndUppercaseArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
mainLabel.text?.append(lowercaseAndUppercaseArray.randomElement()!)
}else if secondViewController.lowercaseLettersToggle.isOn == true && secondViewController.uppercaseLettersToggle.isOn == false && secondViewController.numbersToggle.isOn == true && secondViewController.specialCharactersToggle.isOn == false {
let lowercaseAndNumberArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
mainLabel.text?.append(lowercaseAndNumberArray.randomElement()!)
} else if secondViewController.lowercaseLettersToggle.isOn == true && secondViewController.uppercaseLettersToggle.isOn == false && secondViewController.numbersToggle.isOn == false && secondViewController.specialCharactersToggle.isOn == true {
let lowercaseAndSpecialCharactersArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "_", "+", "=", "[", "{", "]", "}", "\\", "|", ";", ":", "'", "\"", ",", "<", ".", ">", "/", "?"]
mainLabel.text?.append(lowercaseAndSpecialCharactersArray.randomElement()!)
}


UIPasteboard.general.string = mainLabel.text
mainButton.alpha = CGFloat(1)
}

因此,正如您在这里看到的,您可以看到读取每个 if 语句是多么令人困惑,以及设置每个 if 语句是多么烦人(我什至没有在这里设置每个 if 语句,因为我来这里是为了找到一种我不必这样做的方式)。有人能解决这个问题吗?

最佳答案

从一个空数组开始。现在一次检查每个开关 - 不使用 else,仅使用四个 if 语句的序列。每次其中一个为 true 时,请附加与该选择相对应的字符。当您通过所有四个 if 语句后,您将拥有数组中适合该配置的所有字符。现在从数组中随机选择一个元素。

伪代码:

var array = [Character]()
if lowercase { append lowercaseChars }
if uppercase { append uppercaseChars }
if numbers { append numberChars }
if special { append specialChars }
pick a char

关于ios - 如何基于多个 UISwitch 状态设置更可维护的做事方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com