2016-12-24 80 views
-1

我使用CoreData和我想在我的UIPickerView 2分不同的列设有专卖店和项目类型无法设置pickerView titleForRow为(字符串?字符串?)

当我运行它,这些项目是“有”,但它们显示为“?”

这里是我为我的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是给我一个警告说:

实例方法 'pickerVIew(titleForRow:forComponent :)' 近匹配 可选要求'pickerView(titleForRow:forComponent :)' 协议UIPickerView

回答

1

您只能返回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 
} 
+1

我已经更新了我的答案与你的更正。 –

+0

作品!万分感谢 – Doba