2016-11-30 3 views
0

Я попытался запрограммировать контроллер вида регистрации и использовать UIPickerView для выбора страны. Проблема в том, что когда я пытался передать страну выбора в Parse для сохранения ввода, Xcode дал мне ошибку. Почему Xcode не позволяет мне использовать выбранные данные для Parse? Ошибка в последней строке.Не удается сохранить данные из UIPickerView

Любые помощь ребята?

@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

Какая ошибка? – rmaddy

+0

Ошибка в последней строке кода «использование неразрешенного идентификатора» строка « – user2508528

+0

@rmaddy Ошибка в последней строке кода« использование неразрешенного идентификатора строки » – user2508528

ответ

0

Основываясь на вашем comment, что ошибка «неразрешенной строки идентификатора»:

Вы никогда не объявляя переменную с именем row, пока вы используете его. Вы можете либо заменить использование этой неопределенной переменной правильным индексом массива, который даст вам страну из переменной countryData ИЛИ вы убедитесь, что строка фактически объявлена ​​и доступна в вашей функции.

+0

Так как я не объявляю row, я попытался использовать только countryData для хранения в синтаксическом анализе. Проблема в том, что он «хранит весь массив не один конкретный выбор. Итак, скажите мне, как исправить эту проблему, чтобы я мог сохранить выбор одного выбора для синтаксического анализа? – user2508528

+0

Ну, вам нужно сопоставить любой выбор, который пользователь внес в индекс массива 'countryData', например, если выбранным был Саудовская Аравия, вы бы использовали' countryData [0] ', если бы это была Турция, вы использовали бы' countryData [ 1] '. –

+0

В дополнение к этому вы можете прочитать о массивах в Swift и о том, как их использовать здесь. Https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/UID/TP40014097-СН8-ID107 –

Смежные вопросы