因为我不知道的原因而获得SIGABRT

时间:2011-08-28 13:59:41

标签: iphone cocoa-touch debugging sigabrt

我正在开发一个iOS应用程序(http://affogato.visioa.com/),它实现了一个标签栏控制器,导航控制器和一个tableview控制器,每当我运行我的应用程序时,我得到:“线程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 个答案:

答案 0 :(得分:6)

控制台日志的第一行给出了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 - 那里有吗?

另一方面,如果您不想使用这种控制器,只需将其更改为.h文件中的UIViewController。

答案 1 :(得分:1)

我收到了相同的错误消息,在我的情况下,表格视图的“视图”出口未在故事板场景中连接。控制从ViewController对象拖动到场景中嵌入的UITableView对象。 HTH。

答案 2 :(得分:1)

我在故事板上遇到了同样的问题。解决方案非常简单,在故事板中,我使用UIViewController类作为我的viewcontroller场景,其实际应该是UITableViewController。我刚刚删除了我的UIViewController场景并创建了新的UITableViewController场景,错误就消失了。

如果您使用的是故事板,我很确定您遇到的问题。如果您没有使用故事板,请确保您在XIB中设置的类名称应为UITableViewController或您的自定义类必须继承.h文件中的UITableViewController,并确保您的视图出口设置为你的控制器。

答案 3 :(得分:0)

如果您使用的是故事板,也会发生此错误。

如果您使用情节提要板将项目作为通用应用程序启动,则稍后将项目更改为仅在手机中支持,当您在iPad上运行该应用程序时,您可能会看到此错误。

要修复它,暂时将项目更改为通用,并将iPad故事板设置为使用iPhone,然后将项目设置回iPhone。

只是一个FYI

答案 4 :(得分:-1)

我认为你应该改变:

[coffeeTypesArray objectAtIndex:row]

[coffeeTypesArray objectAtIndex:indexPath.row]