Как я могу устранить эту ошибку «нераспознанный селектор отправлен в экземпляр»? - PullRequest
1 голос
/ 08 февраля 2011

Ошибка читает Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MObject objectAtIndex:]: unrecognized selector sent to instance.Итак, что я получаю из этого, так это то, что экземпляр MObject (подкласс NSObject) получает сообщение objectAtIndex:, которое он не должен обрабатывать.

Ошибка возникает, когда я нажимаю настрока таблицы, чтобы перейти к ее подробному представлению, которое состоит из UIWebView detailWebView.Код для didSelectRowAtIndexPath выглядит следующим образом:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MObjectDetailVC *mObjectDetailVC = [[MObjectDetailVC alloc] initWithNibName:@"MObjectDetailVC" bundle:nil];
mObjectDetailVC.detailURL = [[NSURL alloc] initWithString:[[[mcData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] url]];
mObjectDetailVC.title = [[[mcData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] name];
[self.navigationController pushViewController:mObjectDetailVC animated:YES];
[mObjectDetailVC release];
}

Он берет свойство NSString url выбранного экземпляра MObject и превращает его в NSURL для контроллера подробного представления, который просто выполняетосновные [detailWebView loadRequest:[NSURLRequest requestWithURL:detailURL]].

Если у вас есть какие-либо предложения, я буду рад их выслушать.И если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

Взгляните на структуру mcData.Ожидается, что он и его члены будут NSArrays в соответствии с вашим кодом.

0 голосов
/ 08 февраля 2011

Вы можете поставить чек для предотвращения сбоя с помощью responsedsToSelector:

Вы можете узнать больше на http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html

Установка проверки перед передачей определенного сообщения поможет вам избежать сбоя.

0 голосов
/ 08 февраля 2011

objectAtIndex: определяется для NSArray.Если класс MObject является подклассом NSObject, то для него не будет определен метод objectAtIndex:, о чем говорит ошибка.

Оба следующих вызова вызовут сбой:

mObjectDetailVC.detailURL = [[NSURL alloc] initWithString:[[[mcData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] url]];
mObjectDetailVC.title = [[[mcData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] name];

Убедитесь, что и mcData, и [mcData objectAtIndex:indexPath.section] возвращают объект NSArray или его подкласса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...