无法将 pickerView titleForRow 设置为(字符串?,字符串?)
Can't set pickerView titleForRow as (String?, String?)
我正在使用 CoreData,我试图在我的 UIPickerView
中有 2 个不同的列,其中包含 Stores 和 Item Type
当我 运行 它时,项目是 "there" 但它们显示为“?”
这是我的 titleForRow
函数的代码:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> (String?, String?) {
//title
let store = stores[row]
let itemType = itemTypes[row]
// select store out of array of stores
return (store.name, itemType.type)
}
需要注意的是 Xcode 给我一个警告说:
Instance method 'pickerVIew(titleForRow:forComponent:)' nearly matches
optional requirement 'pickerView(titleForRow:forComponent:)' of
protocol UIPickerView
您可以 return 仅 String
类型,而不是元组。如果要添加两列,需要设置
pickerView.numberOfComponents = 2
并检查 component
参数,如:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return component == 0 ? stores[row].name : itemTypes[row].type
}
我正在使用 CoreData,我试图在我的 UIPickerView
中有 2 个不同的列,其中包含 Stores 和 Item Type
当我 运行 它时,项目是 "there" 但它们显示为“?”
这是我的 titleForRow
函数的代码:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> (String?, String?) {
//title
let store = stores[row]
let itemType = itemTypes[row]
// select store out of array of stores
return (store.name, itemType.type)
}
需要注意的是 Xcode 给我一个警告说:
Instance method 'pickerVIew(titleForRow:forComponent:)' nearly matches optional requirement 'pickerView(titleForRow:forComponent:)' of protocol UIPickerView
您可以 return 仅 String
类型,而不是元组。如果要添加两列,需要设置
pickerView.numberOfComponents = 2
并检查 component
参数,如:
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return component == 0 ? stores[row].name : itemTypes[row].type
}