2016-11-30 9 views
0

Ich habe versucht, einen Anmelde-Controller zu programmieren und einen UIPickerView für die Länderauswahl zu verwenden. Das Problem ist, dass, wenn ich versuchte, das Pickerland an Parse zu übergeben, um die Eingabe zu speichern, Xcode mir einen Fehler gab. Warum kann Xcode mir nicht erlauben, die ausgewählten Daten zum Parsen zu verwenden? Der Fehler ist in der letzten Zeile.Daten können nicht von UIPickerView gespeichert werden

Irgendwelche Hilfe Jungs?

@IBOutlet var usernameTextField: UITextField! 
@IBOutlet var fullnameTextField: UITextField! 
@IBOutlet var emailTextField: UITextField! 
@IBOutlet var passwordTextField: UITextField! 
@IBOutlet var phonenumberTextField: UITextField! 
@IBOutlet var countryPicker: UIPickerView! 

let countryData: [String] = ["Saudi Arabia", "Turkey"] 

@available(iOS 2.0, *) 
public func numberOfComponents(in pickerView: UIPickerView) -> Int { 
    return 1 
} 
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return countryData.count 
} 


func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    let countrySelect = countryData[row] 
    print(countrySelect) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    countryPicker.dataSource = self 
    countryPicker.delegate = self 


    // Do any additional setup after loading the view. 

} 


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



@IBAction func signUpAction(sender: AnyObject) { 

    // Declare user object 
    let newUser = PFUser() 

    let fullName = fullnameTextField.text! 
    let username = usernameTextField.text! 
    let email:String = emailTextField.text! 
    let password:String = passwordTextField.text! 
    let phoneNumber:Int? = Int(phonenumberTextField.text!) 

    // Passing arguments 
    newUser.username = username 
    newUser["fullName"] = fullName 
    newUser.email = email 
    newUser.password = password 
    newUser["phoneNumber"] = phoneNumber! as Int 
    newUser["country"] = countryData [row] 
+0

Was ist der Fehler? – rmaddy

+0

Der Fehler ist in der letzten Zeile des Codes "Verwendung von nicht aufgelösten Bezeichner Zeile '" – user2508528

+0

@rmaddy Der Fehler ist in der letzten Zeile des Codes "Verwendung von nicht aufgelösten Bezeichner' Zeile '" – user2508528

Antwort

0

Basierend auf Ihrer comment, dass der Fehler „ungelöste Kennung Zeile“ ist:

Sie nie eine Variable row genannt deklarieren, aber Sie verwenden sie. Sie können entweder die Verwendung dieser undefinierten Variable durch den korrekten Array-Index ersetzen, der Ihnen das Land aus der countryData-Variable gibt ODER Sie stellen sicher, dass die Zeile in Ihrer Funktion tatsächlich deklariert und zugänglich ist.

+0

Also seit ich nicht deklarieren row, ich habe versucht, nur countryData zu verwenden, um in Parse zu speichern. Das Problem ist, dass es das gesamte Array nicht eine bestimmte Auswahl speichert. Also, sagen Sie mir, wie ich dieses Problem beheben kann, damit ich eine Auswahl zum Parsen speichern kann? – user2508528

+0

Nun, Sie müssen die Wahl, die der Benutzer vorgenommen hat, auf einen Array-Index von 'countryData' abbilden, zum Beispiel, wenn die Auswahl Saudi Arabien wäre, würden Sie' countryData [0] 'verwenden, wenn es die Türkei wäre würden Sie' countryData [ 1] '. –

+0

Darüber hinaus können Sie über Arrays in Swift lesen und wie Sie sie hier verwenden https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-ID107 –

Verwandte Themen