如何在swift中创建一个带有数组的if语句?

时间:2015-04-24 20:34:26

标签: ios arrays swift if-statement

我正在尝试制作一个使用登录系统的应用。我已经为用户名和密码创建了一个数组。但我需要测试密码是否正确。如何创建一个if语句来测试数组内部的值?如果您需要,这是我的代码。

import UIKit

var namesArray = [String]()
var passWordArray = [String]()

class ViewController: UIViewController {

    var username = "Ege"
    var password = "Gürkan"
    var trueFalse = true

    @IBOutlet weak var idTextField: UITextField!
    @IBOutlet weak var passwordTextField: UITextField!
    @IBOutlet weak var trueWrongLabel: UILabel!

    @IBAction func buttonPressed(sender: AnyObject) {

        if idTextField.text == "Ege" && passwordTextField.text == "Gürkan" {

            self.performSegueWithIdentifier("geçiş", sender: self)

        } else {

            trueWrongLabel.text = "Wrong id/pw"

            idTextField.resignFirstResponder()

            passwordTextField.resignFirstResponder()

            trueWrongLabel.textColor = UIColor.redColor()

            idTextField.text = nil

            passwordTextField.text = nil

        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        NSUserDefaults.standardUserDefaults().setObject(namesArray, forKey: "nameArray")

        var recalledNameArray = NSUserDefaults.standardUserDefaults().objectForKey("nameArray")! as NSArray

        NSUserDefaults.standardUserDefaults().setObject(passWordArray, forKey: "passWordArray")
        var recalledPassWordArray: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("passWordArray")        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }        
}

在说明的行中if isTextField.text == "Ege" 我想测试用户刚刚在文本字段中输入的内容是否存在值。我该怎么办?

PS:我对编程很新,所以请不要在解释时使用复杂的术语

2 个答案:

答案 0 :(得分:0)

这是开始编程的东西。

有很多方法可以做到这一点。

一种直接的方法是创建一个包含name属性和password属性的结构。然后创建一个结构数组。当用户输入用户名和密码时,使用filter命令查找包含匹配用户名的结构,然后检查密码是否正确。

如果你对Swift过滤器功能感到不舒服(我还没有使用它),那么你也可以自己遍历数组寻找匹配。

答案 1 :(得分:0)

为什么要使用Array for userName和Array for Password? 你怎么知道那个userName的密码? 我建议你使用Dictionary这是最好的解决方案。 所以一个用户名和密码的字典和值将是:

key:value
Ege:Gürkan

,代码为:

for (key,value) in dic
{
if (key == idTextField.text && value == passwordTextField.text)
{
println("true")
}
}

我希望这就是你想要的!。