我有以下代码创建模态导航控制器并显示它。
DetailViewController *content = [[DetailViewController alloc]initWithNibName:@"DetailView" bundle:nil];
content.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Close"
style:UIBarButtonItemStylePlain
target:content
action:@selector(closeButtonPress:)] autorelease];
UINavigationController *modalNavController = [[UINavigationController alloc] initWithRootViewController:content];
modalNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:modalNavController animated:YES];
[modalNavController release];
这种方法在99%的情况下都可以正常工作,但在奇怪的情况下我会崩溃..
-[__NSCFType closeButtonPress:]: unrecognized selector sent to instance 0x5ca91d0
答案 0 :(得分:1)
代码看起来(几乎)正确。但是你应该在某个地方发布内容,但是由于这个原因,ExcBadAccess不太可能发生。
所以为了追捕这个,我建议使用NSZombies。 NSZombies可以防止你的对象被释放,它们只是被标记为解除分配(即变成僵尸)。
Executable
组Get Info
Arguments
标签Variables to be set in the environment
NSZombieEnabled
并将其值设置为YES
。确保它已激活当你知道它发生在哪里时,你可以更好地调查它发生的原因。