2016-11-15 5 views
0

Ошибка:Ошибка: Тип «GearViewController» не соответствует протоколу «» UIPickerViewDataSource

Type 'GearViewController' does not conform to protocol 'UIPickerViewDataSource'

На основе apple documentation есть только 2 необходимые методы для UIPickerViewDataSource. Оба включены в код ниже. Я думаю, что синтаксис правильный. (но, вероятно, нет)

Объявление класса/управления и инициализация. (Много другого кода для наглядности. Полный код доступен, если это необходимо, я буду править. Просто пытается остаться краток.) ​​

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 
    } 

ответ

0

Один из метода протокола, который вы реализовали это неправильно, метод должен быть:

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

Вы реализовали метод, как,

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

Правильно, и вы должны быть хорошо пойти.

+0

получил ошибку синтаксиса с этим и двумя другими ответами ниже. Требуется 'func pickerView (_: UIPickerView, numberOfRowsInComponent: Int) -> Int { return gearCategoryPickerData.count }' –

+0

Выполнено с изменением, но нужно проверить правильность ожидаемых результатов и отправиться на настоящую работу. –

+0

Спасибо, с одним изменением он работает как шарм. Еще лучше, он указал на еще одну проблему, которая была бы следующей статьей! –

0

numberOfComponents есть, но где это pickerView?

0

Просто добавьте func pickerView(UIPickerView, numberOfRowsInComponent: Int) функции