Получение titleForRow с использованием UIPicker из NSArray - Swift
Я пытаюсь вернуть объект из моего массива с помощью UIPickerViewDelegate ниже:
var myArr = NSArray()
Добавление объектов в мой массив
self.myArray = NSArray(objects: "Mr", "Mrs", "Miss", "Ms", "Dr", "Master", "Rev",
"Fr", "Atty", "Prof", "Hon")
Вот мой делегат
func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! {
var string = NSString(coder: self.myArray.objectAtIndex(row) as NSCoder)
return string
}
Однако это исключение. Как мне сделать эту простую задачу?
1 ответ
Решение
Основываясь исключительно на вашем вопросе и предполагая, что нет ничего релевантного, о чем вы не упомянули, избавьтесь от кода:
func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! {
return self.myArray.objectAtIndex(row) as NSString
}
Поскольку это быстрая программа, вам, вероятно, также не следует использовать NSArray, поскольку это приводит к неоднозначности типа:
var myArr = ["Mr", "Mrs", "Miss", "Ms", "Dr", "Master", "Rev",
"Fr", "Atty", "Prof", "Hon"]
И теперь ваш метод делегата становится еще понятнее:
func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! {
return myArray[row]
}