2010-02-06 2 views
0

У меня проблема с моим приложением для iPhone.Xcode iPhone SDK «Завершение приложения из-за неперехваченного исключения»

Это приложение на основе вкладок. На одном из вкладок у меня есть представление таблицы. Я установил его для загрузки данных из PLIST.

Моя проблема заключается в том, что при попытке создать и запустить приложение приложение либо выйдет из строя, либо останется на черном экране с сообщением об ошибке «Завершение приложения из-за неперехваченного исключения».

Я посмотрел в консоли, и обнаружили, что ошибка, вероятно, заложена в этой строке:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return workouts.count; 
} 

(сообщение об ошибке :)

2010-02-06 21:50:54.733 Mudo[52439:207] *** -[FirstViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x39101a0 
2010-02-06 21:50:54.735 Mudo[52439:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[FirstViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x39101a0' 
2010-02-06 21:50:54.736 Mudo[52439:207] Stack: (
    29344859, 
    2569487625, 
    29726779, 
    29296246, 
    29148866, 
    4413562, 
    4420938, 
    4419935, 
    3136474, 
    3076985, 
    3118420, 
    3106975, 
    55857840, 
    55857263, 
    55855302, 
    55854394, 
    2780921, 
    2804616, 
    2787027, 
    2814133, 
    37441233, 
    29129600, 
    29125704, 
    2780777, 
    2818051 
) 

Строительство приложение не создает каких-либо ошибок.

Просьба помочь мне? Спасибо :)

+0

Можете ли вы показать нам свое объявление @interface для класса? Похоже, вы не объявили ваш FirstViewController как UITableViewController Подкласс или вы не установили табличное представление делегата/источник данных правильно ... – Jasarien

+0

@interface FirstView: UIViewController { \t NSArray * тренировки; } @end – Emil

ответ

1

Если вы посмотрите на фактический текст исключения, 'NSInvalidArgumentException', reason: '*** -[FirstViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x39101a0', вы можете увидеть корень проблемы. Где-то в вашем коде вы вызываете tableView:numberOfRowsInSection: на FirstViewController, который не реализует этот метод.

Исключения не пойманы во время компиляции, а скорее выбрасываются во время выполнения. Вы можете захотеть прочитать их, если вы не знакомы, поскольку они являются довольно важной частью многих языков программирования.

http://en.wikipedia.org/wiki/Exception_handling

+0

Как это реализовать в таком случае? – Emil

+0

Подождите, У меня нет кода в файле FirstViewController .. Может ли это иметь к этому какое-то отношение? – Emil

+0

Конечно, это как-то связано с этим. Если вы установите FirstViewController в качестве источника данных/делегата таблицы, тогда ему необходимо реализовать методы из этих протоколов! – Jasarien

0

Я предполагаю, так как FirstViewController это один из стандартных примеров классов, созданных при запуске нового приложения на основе Tab Bar в Xcode, что вы не изменили его суперкласс или реализованы методы UITabeViewDelegate и UITableViewDataSource.

Либо это, либо вы реализовали методы из этих протоколов в другом классе, но установите FirstViewController как делегат/источник данных табличного представления.

Нам нужна дополнительная информация, чтобы знать наверняка.

+0

Хм, вы правы. Я, очевидно, установил делегат TableView и источник данных для FirstViewController .. Как мне изменить это ...? Спасибо :) – Emil

Смежные вопросы