比较四个 UITextFields 的文本 属性

Comparing four UITextFields' text property

我想比较四个 UITextFields 的文本 属性 以确保它们不相同。即:

tbx1.text = "hello"
tbx2.text = "goodbye"
tbx3.text = "goodnight"
tbx4.text = "hello"

应该return一个错误但是

tbx1.text = "hello"
tbx2.text = "goodbye"
tbx3.text = "goodnight"
tbx4.text = "good morning"

应该 return 正确。

我知道我可以使用又长又复杂的 if 语句,但我希望有更好的方法

一种可能的解决方案是将所有字符串添加到一个集合中并检查集合的计数。如果它是 4,则所有文本字段都有不同的值,如果它小于 4,则您有重复项。

您甚至可以将其概括为使用不同数量的文本字段。您只需将所有文本字段的文本 属性 添加到一个数组,从该数组创建一个 Set,然后比较两个集合中的元素数。

let textFieldValues = [tbx1.text!, tbx2.text!, tbx3.text!, tbx4.text!]
let textFieldSet = Set(textFieldValues)
if textFieldSet.count == textFieldValues.count {
    print("No duplicates")
} else {
    print("Some duplicates")
}