2015-08-08 103 views
-1

我对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它,我也曾在其他代码块这样的错误,我真的很想知道这是如何工作在迅速。

由于

+0

除非您跳过所有重要的代码,否则您的错误是因为当您创建'credLogin'变量时,没有'userEmail'或'userPassword'变量。 –

回答

2

变量userEmailuserPassword是本registerTapped方法的范围内声明。除此方法外,它们不可见。

要么放线

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

的方法或之后IBOutlet声明声明变量的实例变量。

代码发送数据到服务器端也必须在一个方法内执行。

+0

感谢这真的帮了我。 – carlosx2

+0

我还有一个问题,如何将其声明为实例变量?我尝试了很多东西,但没有任何工作。我解决的方法是在一个函数 FUNC urlConnect的把一切(){ 代码 } 是工作,我有机会从IBOutlet中的变种,但它是唯一的方式,我可以得到代码工作,我认为这不是我认为的正确方法。然而,这一切都可以写成函数,因为它会在每次执行代码后检查是否所有内容都被填充。 – carlosx2

+0

实例变量声明与IBOutlet声明处于同一级别。在视图控制器中,你可以声明一个变量为非可选的,其默认值为'var userPassword =“”'或者可选的'var userPassword:String?'。在你的情况下,我建议使用非可选版本。 – vadian