我正在开发一个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
答案 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]