iOS:在 swift 中使用凭据创建一个结构

iOS: create a struct in swift with credentials

我必须创建一个 struct 来检查两个 UITextField 是否有效。 而我的想法是这样的,这样创建一个struct是不是一个好方法?

struct Credentials{
func isCorrect() -> Bool {
    guard let username = emailTF.text else {
        return false
    }
    guard let password = passwordTF.text else {
        return false
    }

    return true
}

但我有一些问题:

谢谢

结构的工作原理与 classes 大致相同。它们可以有变量,并且与 classes 不同,如果存在未显式给定值的变量,swift 将自动创建初始化程序。你会做这样的事情。

let myStruct = Credentials(emailTF: "something", passwordTF: "something")
print(myStruct.isCorrect())

该函数将像 class 一样使用 let 和 var。

但是,综上所述,我建议将此函数直接放入您的 class,而不是放在结构中。只需将值作为参数传递即可。

你可以像这样创建一个结构

struct Credentials {
    let email: String
    let password: String

    init?(email:String?, password: String?) {
        guard let email = email, password = password else { return  nil }
        self.email = email
        self.password = password
    }

    var correct: Bool {
        // do your check
        guard email.isEmpty == false && password.isEmpty == false else { return false }
        return true
    }
}

如您所见,correct 是一个计算 属性,不是函数,因为它不需要任何参数。

用法

let correct = Credentials(email: emailTF.text, password: passwordTF.text)?.correct == true