Error: Type 'GearViewController' does not conform to protocol 'UIPickerViewDataSource' <p>Error:</p> <blockquote> <p>Type 'GearViewController' does not conform to protocol 'UIPickerViewDataSource'</p> </blockquote> <p>Based on <a href="https://developer.apple.com/reference/uikit/uipickerviewdatasource" rel="nofollow noreferrer">apple documentation</a> there are only 2 required methods for a UIPickerViewDataSource. Both are included in the code below. I think the syntax is correct. (but probably not)</p> <p>Class/control declaration, and init. (lots of other code removed for clarity. Full code available if needed, i'll edit. Just trying to stay brief.)</p> <pre><code>class GearViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UIPickerViewDataSource, UIPickerViewDelegate{ @IBOutlet weak var pickerGearCategory: UIPickerView! override func viewDidLoad() { super.viewDidLoad() pickerGearCategory.dataSource = self pickerGearCategory.delegate = self } </code></pre> <p>Delegate and datasources</p> <pre><code> let gearCategoryPickerData = CategoryRepository.allCategories() //MARK: CategoryPicker- Delegates and data sources //MARK: CategoryPicker - Data Sources //Required func numberOfComponents(in pickerGearCategory: UIPickerView) -&gt; Int { return 1 } //Required func pickerGearCategory(pickerGearCategory: UIPickerView, numberOfRowsInComponent component: Int) -&gt; Int { return gearCategoryPickerData.count } func pickerGearCategory(pickerGearCategory: UIPickerView,titleForRow row: Int, forComponent component: Int) -&gt; String? { return gearCategoryPickerData[row].name } </code></pre>