11

私はプロトコルを持っています:

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

私はデータを持っています:

let muteForPickerData = ["minute(s)","hour(s)"]

viewDidLoad私は持っています:

muteForPicker.delegate = self
muteForPicker.dataSource = self

次に、必要なメソッドがあります。

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
            return 1
        }

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            return muteForPickerData.count
        }

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            return muteForPickerData[row]
        }

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    }

それでも私は得る

タイプviewcontrollerはプロトコルUIPickerViewDataSourceに準拠していません

4

2 に答える 2

19

UIPickerViewDataSourceメソッドnumberOfComponentsInPickerViewは Swift 3 でこのように変更されているため、このエラーが発生しています。

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return muteForPickerData.count
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return muteForPickerData[row]
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

}

詳細については、Apple のドキュメントを参照してUIPickerViewください。

注:_また、メソッド内の他のメソッドと同じように、最初のパラメーター ラベルとして およびを追加する必要がUIPickerViewDelegateありtitleForRowますdidSelectRow

于 2016-10-08T14:46:39.367 に答える