#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;
}