Ios Swift-检查是否至少填写了三个文本字段

Ios Swift-检查是否至少填写了三个文本字段,ios,swift,Ios,Swift,我需要使用Swift检查我的表单是否至少填写了3个文本字段,请参见我的表单示例 1: name 1 surname 1 2: name 2 surname 2 3: name 3 surname 3 4: name 4 surname 4 5: name 5 surname 5 请注意,必须连接字段,例如,如果输入名称4,则必须同时输入姓氏4。这应该可以完成此工作 var name1: UITextField! var surname1: UITextField! var name2:

我需要使用Swift检查我的表单是否至少填写了3个文本字段,请参见我的表单示例

1: name 1 surname 1

2: name 2 surname 2

3: name 3 surname 3

4: name 4 surname 4

5: name 5 surname 5
请注意,必须连接字段,例如,如果输入名称4,则必须同时输入姓氏4。

这应该可以完成此工作

var name1: UITextField!
var surname1: UITextField!
var name2: UITextField!
var surname2: UITextField!
var name3: UITextField!
var surname3: UITextField!
var name4: UITextField!
var surname4: UITextField!
var name5: UITextField!
var surname5: UITextField!

let list = [(name1, surname1), (name2, surname2), (name3, surname3), (name4, surname4), (name5, surname5)]
let populatedPairs = list.filter {
    $0.0?.text?.characters.count > 0 && $0.1?.text?.characters.count > 0
}
if populatedPairs.count > 2 {
    // your stuff goes here
}
更新 您还可以定义
isValid
函数

例如,如果您希望字段中的文本至少包含3个字符,则可以

func isValid(name:UITextField?, surname:UITextField?) -> Bool {
    return name?.text?.characters.count > 2 && surname?.text?.characters.count > 2
}
可以在函数体中随意添加自定义逻辑

这就是将函数传递给
过滤器
方法的方式

let validPairs = list.filter(isValid)

这里有一个更简单的解决方案。我会将姓氏1文本字段称为
s1
,将姓氏1文本字段称为
n1
等等(因为我很懒…)

其中
trim
定义为

extension String {
    func trim(str: String) -> String {
        return str.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: " \t\n\r\0"))
    }
}
这种方法的好处:

  • 最重要的是,它起作用了
  • 它直截了当,易于理解
  • 它处理用户只输入空格的情况

您尝试过什么?这是一项非常基本的任务,只包括直接编码。如果文本是
,该怎么办p@appzYourLife:有没有办法对填写的字段进行其他检查?例如,检查字段是否有一定的长度。回答得好,有没有办法对填写的字段进行其他检查?例如,检查字段是否有一定长度。您的意思是检查具有一定长度的字段文本?只需使用
n1.text!。characters.count
获取长度,并使用if语句进行检查@Mono.WTF
extension String {
    func trim(str: String) -> String {
        return str.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: " \t\n\r\0"))
    }
}