‘нераспознанный селектор’ получен при попытке отображения списка рецептов в представлении навигационной таблицы

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:      (NSInteger)section
{
return [recieps count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView  cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"RecipeCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}

cell.textLabel.text = [recieps objectAtIndex:indexPath.row];
return cell;
}

Я хочу, чтобы показать список рецептов в представлении таблицы навигации, но я получаю ошибки, как unrecognized selector sent to instance 0x7f8c61709f80

Метки

2 ответа

  1. В приведенном выше коде номер раздела метод не вызывается. Пожалуйста, добавьте следующую строку кода

    • (NSInteger)numberOfSectionsInTableView: (UITableView *)tableView {
      возврат 1;
      }

    Отмечать:
    Затем вы вызываете какой-то метод, который не существует в контроллере.Вот почему вы получили сообщение об ошибке «нераспознанный селектор» на консоли. Попробуйте выяснить метод и проверить еще раз.

  2. «Нераспознанный селектор» в iOS означает, что вы пытаетесь вызвать метод, который объект, который вы спрашиваете, не понимает.

    Вы говорите[someObject doThisMethod], но какой-то объект не знает, о чем вы говорите.

    Либо метод не существует для этого объекта и должен быть добавлен, или есть проблема с вашими соединениями раскадровки или классами.

    Ошибка говорит вам, что проблема & где:

     -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fec31c38af0
    

    Это говорит вам , что экземпляр tableView (по адресу памяти 0x7fec31c38af0) получил сообщениеnumberOfRowsInSection:, но он не знает, что делать.

    Если вы используете пользовательский класс для вашего UITableView, убедитесь, что вы правильно установили его в раскадровке. Также убедитесь, что вы правильно подключили оба UITableViewDelegateИ.UITableViewDataSource

    Поскольку он не распознает этот требуемый UITableViewDataSourceметод протокола, вероятно, вы забыли добавить это или подключить его. Дважды проверьте подключения раскадровки и убедитесь, что класс UITableView действительно соответствует UITableViewDataSourceпротоколу.

    Кроме того, это «рецепт»… вы неправильно написали «recieps» в нескольких местах…