从 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的主要内容,如果未能解决你的问题,请参考以下文章