0

エラー:

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

Apple のドキュメントに基づくと、UIPickerViewDataSource に必要なメソッドは 2 つだけです。どちらも以下のコードに含まれています。構文は正しいと思います。(しかし、おそらくそうではありません)

クラス/コントロールの宣言、および init. (わかりやすくするために他の多くのコードを削除しました。必要に応じて完全なコードを利用できます。編集します。簡潔にしようとしています。)

class  GearViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UIPickerViewDataSource, UIPickerViewDelegate{

@IBOutlet weak var pickerGearCategory: UIPickerView!

override func viewDidLoad() {

        super.viewDidLoad()

        pickerGearCategory.dataSource = self
        pickerGearCategory.delegate = self

    }

デリゲートとデータソース

  let gearCategoryPickerData = CategoryRepository.allCategories()
    //MARK: CategoryPicker- Delegates and data sources
    //MARK: CategoryPicker - Data Sources


    //Required
    func numberOfComponents(in pickerGearCategory: UIPickerView) -> Int {
        return 1
    }

    //Required
    func pickerGearCategory(pickerGearCategory: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return gearCategoryPickerData.count
    }


    func pickerGearCategory(pickerGearCategory: UIPickerView,titleForRow row: Int, forComponent component: Int) -> String? {
        return gearCategoryPickerData[row].name
    }
4

3 に答える 3

0

func pickerView(UIPickerView, numberOfRowsInComponent: Int) 機能を追加するだけ

于 2016-11-15T14:07:28.400 に答える
0

numberOfComponents はありますが、pickerView はどこにありますか?

于 2016-11-15T14:06:47.903 に答える
0

実装したプロトコル メソッドの 1 つが間違っています。メソッドは次のようにする必要があります。

func pickerView(UIPickerView, numberOfRowsInComponent: Int) {
//Your implementation here
}

メソッドを次のように実装しました。

func pickerGearCategory(pickerGearCategory: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
//Your implementation
}

それを修正すれば、準備完了です。

于 2016-11-15T14:07:07.953 に答える