【问题标题】:Getting titleForRow Using UIPicker from NSArray - Swift从 NSArray 使用 UIPicker 获取 titleForRow - Swift
【发布时间】:2014-08-14 14:58:59
【问题描述】:

我正在尝试使用下面的 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
}

但是这会引发异常。我该如何完成这个简单的任务?

【问题讨论】:

  • 你为什么在你的委托方法中使用 coder: 初始化器,你有一个字符串数组。除非有你没有展示的东西

标签: ios swift nsarray uipicker


【解决方案1】:

仅根据您的问题,并假设您没有提到任何相关的内容,摆脱编码器的东西:

func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! {
    return self.myArray.objectAtIndex(row) as NSString
}

由于这是一个 swift 程序,你也不应该使用 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]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 2021-01-05
    • 1970-01-01
    • 2014-10-16
    • 2010-10-28
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多