我花了最后两个小时主演最多的cookie切割器代码块,我无法弄清楚它为什么会崩溃,而且控制台或调试器中没有显示错误消息或任何有用的数据。我只是尝试加载一个继承自UITableViewController的视图控制器,它唯一的实例var是一个UITableView对象。这是类代码......
@interface PlayFriendViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
{
IBOutlet UITableView *rootTableView;
}
@property (nonatomic, retain) IBOutlet UITableView *rootTableView;
@end
这是加载它并将其推送到堆栈的代码....
PlayFriendViewController *pfvc = [[PlayFriendViewController alloc] initWithNibName:@"PlayFriendView_iPhone" bundle:nil];
[self.navigationController pushViewController:pfvc animated:YES]; //<--Crashes here
[pfvc release];
这是callstack的相关部分....
0 libSystem.B.dylib 0x33bd52d4 __kill + 8
1 libSystem.B.dylib 0x33bd52c4 kill + 4
2 libSystem.B.dylib 0x33bd52b6 raise + 10
3 libSystem.B.dylib 0x33be9d72 abort + 50
4 libstdc++.6.dylib 0x31bdba20 __gnu_cxx::__verbose_terminate_handler() + 376
5 libobjc.A.dylib 0x3347c594 _objc_terminate + 104
6 libstdc++.6.dylib 0x31bd9df2 __cxxabiv1::__terminate(void (*)()) + 46
7 libstdc++.6.dylib 0x31bd9e46 std::terminate() + 10
8 libstdc++.6.dylib 0x31bd9f16 __cxa_throw + 78
9 libobjc.A.dylib 0x3347b4c4 objc_exception_throw + 64
10 CoreFoundation 0x33ac07c2 +[NSException raise:format:arguments:] + 62
11 CoreFoundation 0x33ac07fc +[NSException raise:format:] + 28
12 UIKit 0x320e4118 -[UITableViewController loadView] + 188
13 UIKit 0x320a0220 -[UIViewController view] + 24
14 UIKit 0x320acd04 -[UIViewController contentScrollView] + 16
15 UIKit 0x320acb74 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 24
16 UIKit 0x320aca72 -[UINavigationController _layoutViewController:] + 18
17 UIKit 0x320ac54a -[UINavigationController _startTransition:fromViewController:toViewController:] + 374
18 UIKit 0x320ac358 -[UINavigationController _startDeferredTransitionIfNeeded] + 176
19 UIKit 0x320a00be -[UINavigationController pushViewController:transition:forceImmediate:] + 634
20 UIKit 0x3209fe34 -[UINavigationController pushViewController:animated:] + 28
有一点需要注意:当我删除UITableView实例var及其所有连接时,视图会成功加载。视图中没有任何内容,但至少它不会崩溃。
任何想法发生了什么或如何获得有关此次崩溃的更多信息?
非常感谢你的智慧!
答案 0 :(得分:1)
你是@synthesizing rootTableView吗?
答案 1 :(得分:1)
当新viewController
尝试加载视图时发生故障,这意味着.xib存在某种问题,或者更可能是与.xib的连接。
我猜你的.xib中的UITableView
指向无效的委托或dataSource,甚至更可能是指出一个不存在的东西。也许您更改了tableView插座或viewController
的名称。
答案 2 :(得分:1)
应该有一个异常记录到控制台,但如果它以某种方式无法到达它,请尝试将崩溃行放在@try {} @catch () {}
块中,打印异常然后终止(或不终止)。
答案 3 :(得分:1)
解决了问题,就像所有令人费解的错误一样,它是愚蠢的。我想我感觉不是很糟糕,因为没有其他人抓住它,但我的视图控制器应该是UIViewController
的子类,而不是UITableViewController
,因为UITableView
对象是一个实例我的类的var和我的视图控制器遵循适当的协议。无论如何,修复它,现在它的工作原理。那个愚蠢的错误只花了我两个小时来修复...... ugghh。