2016-12-24 72 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