エラー:
タイプ「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
}