创建字符串时使用未解析的标识符

时间:2015-08-08 12:34:31

标签: ios xcode swift

我对swift非常新,但我可以使用javascript和php,所以认为这对我有意义。我已经阅读了很多关于这个主题的帖子,但并没有真正解释我的。我有以下代码非常简单。我有几个带有登录信息的文本字段传递给php。但是当我尝试使用函数中的var时,这是不可能的。所以我想出来但是当我尝试用不同的var重新定义函数之外的变量时,我仍然会得到错误。这是到目前为止的代码

import UIKit

class RegisterPage: UIViewController, UITextFieldDelegate{

    @IBOutlet weak var userEmailTextField: UITextField!
    @IBOutlet weak var userPasswordTextField: UITextField!
    @IBOutlet weak var userPasswordConfirmTextField: UITextField!


    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }





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



    @IBAction func registerTapped(sender: AnyObject) {
        let userEmail = userEmailTextField.text
        let userPassword = userPasswordTextField.text
        let userConfirmPassword = userPasswordConfirmTextField.text


        // check for empty fields
        if(userEmail.isEmpty || userPassword.isEmpty || userConfirmPassword.isEmpty)
        {

            // Display alert message
            displayMyAlertMessage("Alle velden gelieve invullen");
            return;
        }

        //Check if passwords match
        if(userPassword != userConfirmPassword){

        // Display alert message
            displayMyAlertMessage("Wachtwoorden komen niet overeen");
            return;

        }

    }// end of registerTapped button





    // send data to server side


    static var urlConn: NSURL = NSURL(string: "http://xxxxxxxxx")!
    var request: NSMutableURLRequest = NSMutableURLRequest(URL:urlConn);



    var credLogin = "email=\(userEmail)&password=\(userPassword)"

以下行给出了未解析的标识符错误

var credLogin = "email=\(userEmail)&password=\(userPassword)"

我已经尝试了很多不同的东西,但是我不能在它之外的函数中移动var,而且我还有其他代码块这样的错误,我真的想知道这在swift中是如何工作的。

谢谢

1 个答案:

答案 0 :(得分:2)

变量userEmailuserPasswordregisterTapped方法的范围内声明。在这种方法之外,它们是不可见的。

要么放行

var credLogin = "email=\(userEmail)&password=\(userPassword)"

在方法中或在IBOutlet声明后立即将变量声明为实例变量。

向服务器端发送数据的代码也必须在方法中执行。