Получение 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]
}
Другие вопросы по тегам