Получение SIGABRT по неизвестной мне причине - PullRequest
1 голос
/ 28 августа 2011

Я занимаюсь разработкой приложения для iOS (http://affogato.visioa.com/), которое реализует контроллер панели вкладок, контроллер навигации и контроллер просмотра таблиц, и каждый раз, когда я запускаю свое приложение, я получаю: «Поток 1: сигнал программы получен:« SIGABRT ».Кто-нибудь пролил свет на то, почему я получаю это и как это исправить?

Ниже находится консоль:

2011-08-28 13:13:57.070 Affogato[16469:b303] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "CoffeesView" nib but didn't get a UITableView.'
*** Call stack at first throw:
(
0   CoreFoundation                      0x00dc95a9 __exceptionPreprocess + 185
1   libobjc.A.dylib                     0x00f1d313 objc_exception_throw + 44
2   CoreFoundation                      0x00d81ef8 +[NSException raise:format:arguments:] + 136
3   CoreFoundation                      0x00d81e6a +[NSException raise:format:] + 58
4   UIKit                               0x00224e9b -[UITableViewController loadView] + 275
5   UIKit                               0x000cb00e -[UIViewController view] + 56
6   UIKit                               0x000c9482 -[UIViewController contentScrollView] + 42
7   UIKit                               0x000d9f25 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 48
8   UIKit                               0x000d8555 -[UINavigationController _layoutViewController:] + 43
9   UIKit                               0x000d9870 -[UINavigationController _startTransition:fromViewController:toViewController:] + 524
10  UIKit                               0x000d432a -[UINavigationController _startDeferredTransitionIfNeeded] + 266
11  UIKit                               0x001ef2e9 -[UILayoutContainerView layoutSubviews] + 226
12  QuartzCore                          0x016b3a5a -[CALayer layoutSublayers] + 181
13  QuartzCore                          0x016b5ddc CALayerLayoutIfNeeded + 220
14  QuartzCore                          0x0165b0b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
15  QuartzCore                          0x0165c294 _ZN2CA11Transaction6commitEv + 292
16  UIKit                               0x0001d9c9 -[UIApplication _reportAppLaunchFinished] + 39
17  UIKit                               0x0001de83 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 690
18  UIKit                               0x00028617 -[UIApplication handleEvent:withNewEvent:] + 1533
19  UIKit                               0x00020abf -[UIApplication sendEvent:] + 71
20  UIKit                               0x00025f2e _UIApplicationHandleEvent + 7576
21  GraphicsServices                    0x01002992 PurpleEventCallback + 1550
22  CoreFoundation                      0x00daa944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
23  CoreFoundation                      0x00d0acf7 __CFRunLoopDoSource1 + 215
24  CoreFoundation                      0x00d07f83 __CFRunLoopRun + 979
25  CoreFoundation                      0x00d07840 CFRunLoopRunSpecific + 208
26  CoreFoundation                      0x00d07761 CFRunLoopRunInMode + 97
27  UIKit                               0x0001d7d2 -[UIApplication _run] + 623
28  UIKit                               0x00029c93 UIApplicationMain + 1160
29  Affogato                            0x00001ed9 main + 121
30  Affogato                            0x00001e55 start + 53
31  ???                                 0x00000001 0x0 + 1
)
terminate called throwing an exception

Ответы [ 5 ]

6 голосов
/ 28 августа 2011

В первой строке журнала консоли указывается причина для SIGABRT:

2011-08-28 13:13:57.070 Affogato[16469:b303] *** Terminating app 
due to uncaught exception 'NSInternalInconsistencyException', 
reason: '-[UITableViewController loadView] 
loaded the "CoffeesView" nib but didn't get a UITableView.'

Если вы намеревались использовать UITableViewController, он ищет в файле NIB для управления UITableView - есть ли одинтам?

С другой стороны, если вы не хотели использовать этот вид контроллера, просто измените его на UIViewController в файле .h.

1 голос
/ 18 февраля 2013

У меня была такая же проблема с раскадровкой. решение было очень простым. В раскадровке я использовал класс UIViewController для моей сцены viewcontroller, которая должна быть на самом деле UITableViewController. Я просто удалил свою UIViewController сцену и создал новую UITableViewController сцену, ошибка исчезла.

Я почти уверен, что та же проблема, что и у вас, если вы используете раскадровку. Если вы не используете раскадровку, убедитесь, что имя класса, которое вы устанавливаете в XIB, должно быть UITableViewController, или ваш пользовательский класс должен наследовать файл UITableViewController в .h, а также убедитесь, что ваш выход представления настроен на контроллер.

1 голос
/ 04 ноября 2011

Я получаю то же сообщение об ошибке, и в моем случае выход "представления" представления таблицы не был подключен в сцене раскадровки.Перетащите элемент управления из объекта ViewController в объект UITableView, встроенный в сцену.НТН.

0 голосов
/ 12 октября 2012

Эта ошибка также может произойти, если вы используете раскадровки.

Если вы запускаете проект как универсальное приложение с использованием раскадровки, то позже измените проект на поддержку только в телефоне, когда вы запускаете приложение на iPadможет увидеть эту ошибку.

Чтобы исправить это, временно измените проект на универсальный и настройте раскадровку iPad на использование iPhone, а затем верните свой проект обратно на iPhone.

просто FYI

0 голосов
/ 28 августа 2011

Я думаю, вы должны изменить:

[coffeeTypesArray objectAtIndex:row]

до

[coffeeTypesArray objectAtIndex:indexPath.row]
...