Сбой UITableView Нераспознанный селектор, отправленный в экземпляр

#ios #iphone #xcode #uitableview #crash

#iOS #iPhone #xcode #uitableview #сбой

Вопрос:

Моя программа выходит из строя с приведенным ниже отчетом.

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x7fb4e1c099b0'
 

Вот моя реализация метода tableview.

Журнал сбоев здесь.

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        if (section == 0) {
            return 6;
        } 
        return 5;
    }
 

Может ли кто-нибудь понять, почему это происходит?

Комментарии:

1. еще, если, если???? и раздел только один, почему вам нужно проверять, равен ли раздел 0 или нет??

2. вы tableview всегда возвращаете 1 для numberOfRowsInSection

3. Пожалуйста, поделитесь полным журналом сбоев.

4. Я изменил приведенный выше код, чтобы показать, что у меня есть только один раздел, и все равно он выходит из строя. Вот полный журнал сбоев. gist.github.com/anonymous/283415d293042edc7c00d476df98d774

Ответ №1:

В сообщении об ошибке говорится, что вы отправляете метод tableView:numberOfRowsInSection: объекту UIView, который не понимает этот метод. Либо источник данных вашего tableview неверен, либо вы хотели отправить другой метод в UIView.

Если вы не можете найти строку кода с вашей ошибкой, вы можете поделиться дополнительным кодом. В противном случае опубликованный вами код является шаблонным и бесполезным. Но это то, что означает ваше сообщение об ошибке.

Комментарии:

1. Вы были правы. В построителе интерфейса. Источник данных и делегат tableview были связаны с UIView, а не с владельцем файлов. Теперь проблема решена.

Ответ №2:

У вас есть только один раздел и синтаксическая ошибка рядом с else if if (раздел == 0), Он будет обрабатываться как «if» внутри «else if»

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        if (section == 0) {
            return 6;
        } 
        else if (section == 1) {
            return 3;
        }
    }
 

Ответ №3:

  func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 2
 }

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
     if section == 0 {
        return firstSectionArray.count
     }else if section == 1{
        return secondSectionArray.count
     }
     return 0;
 }