从 NSArray 使用 UIPicker 获取 titleForRow - Swift

Posted

技术标签:

【中文标题】从 NSArray 使用 UIPicker 获取 titleForRow - Swift【英文标题】:Getting titleForRow Using UIPicker from NSArray - 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: 初始化器,你有一个字符串数组。除非有你没有展示的东西 【参考方案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]

【讨论】:

以上是关于从 NSArray 使用 UIPicker 获取 titleForRow - Swift的主要内容,如果未能解决你的问题,请参考以下文章

从 NSArray 对象设置 UIPickerView

从单个 UIPicker 获取两个标签的值

带有对象和键的 UIPicker 使用 JSON

如何为 UIpicker 行分配 ID 和值?

IOS:从 uipicker 的核心数据中获取数组

UIPicker 从 NSUserDefaults 中选择双值