Iphone popViewControllerAnimated:是使我的应用程序崩溃

Iphone popViewControllerAnimated:是使我的应用程序崩溃,iphone,uinavigationcontroller,crash,Iphone,Uinavigationcontroller,Crash,当我执行[self.navigationController popViewControllerAnimated:YES]时,我的应用程序崩溃 它在设备上的崩溃比在模拟器上的要多。请建议如何修复此问题 Date/Time: 2010-11-09 10:51:41.325 +0800 OS Version: iPhone OS 4.0.1 (8A306) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGBUS

当我执行[self.navigationController popViewControllerAnimated:YES]时,我的应用程序崩溃

它在设备上的崩溃比在模拟器上的要多。请建议如何修复此问题

Date/Time: 2010-11-09 10:51:41.325 +0800 OS Version: iPhone OS 4.0.1 (8A306) Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000 Crashed Thread: 0 Thread 0 Crashed: 0 libobjc.A.dylib 0x0000286e objc_msgSend + 18 1 CoreFoundation 0x00002c30 -[NSObject(NSObject) release] + 24 2 libobjc.A.dylib 0x00003c1a objc_setProperty + 114 3 UIKit 0x000693d4 -[UINavigationController setDisappearingViewController:] + 24 4 UIKit 0x0007d5c0 -[UINavigationController _clearLastOperation] + 40 5 UIKit 0x0007d4b4 -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:] + 556 6 UIKit 0x0007d248 -[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:] + 204 7 UIKit 0x0007d0b6 -[UINavigationTransitionView _navigationTransitionDidStop] + 450 8 UIKit 0x00059974 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 184 9 UIKit 0x0005987e -[UIViewAnimationState animationDidStop:finished:] + 34 10 QuartzCore 0x000127ba run_animation_callbacks(double, void*) + 286 11 QuartzCore 0x0001265c CA::timer_callback(__CFRunLoopTimer*, void*) + 116 12 CoreFoundation 0x00071a54 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8 13 CoreFoundation 0x00073ede __CFRunLoopDoTimer + 854 14 CoreFoundation 0x0007485e __CFRunLoopRun + 1082 15 CoreFoundation 0x0001d8e4 CFRunLoopRunSpecific + 224 16 CoreFoundation 0x0001d7ec CFRunLoopRunInMode + 52 17 GraphicsServices 0x000036e8 GSEventRunModal + 108 18 GraphicsServices 0x00003794 GSEventRun + 56 19 UIKit 0x000062a0 -[UIApplication _run] + 396 20 UIKit 0x00004e10 UIApplicationMain + 664 21 tenpay 0x00006124 main (main.m:13) 22 tenpay 0x00002324 start + 44 日期/时间:2010-11-09 10:51:41.325+0800 操作系统版本:iPhone操作系统4.0.1(8A306) 报告版本:104 异常类型:EXC\U坏访问(SIGBUS) 异常代码:0x00000000时内核保护失败 崩溃线程:0 线程0崩溃: 0 libobjc.A.dylib 0x0000286e objc_msgSend+18 1 CoreFoundation 0x00002c30-[NSObject(NSObject)发布]+24 2 libobjc.A.dylib 0x00003c1a objc_setProperty+114 3 UIKit 0x000693d4-[UINavigationController设置消失视图控制器:][24 4 UIKit 0x0007d5c0-[UINavigationController\u clearLastOperation]+40 5 UIKit 0x0007d4b4-[UINavigationController导航转换视图:DiEndTransition:fromView:toView:+556 6 UIKit 0x0007d248-[UINavigationTransitionView\u notifyDelegateTransitionDidStopWithContext:+204 7 UIKit 0x0007d0b6-[UINavigationTransitionView _NavigationTransitiondStop]+450 8 UIKit 0x00059974-[UIViewAnimationState sendDelegateAnimationDidStop:finished:+184 9 UIKit 0x0005987e-[UIViewAnimationState animationDidStop:finished:+34 10个QuartzCore 0x000127ba运行\u动画\u回调(双精度,无效*)+286 11 QuartzCore 0x0001265c CA::timer\u回调(\uu CFRunLoopTimer*,void*)+116 12 CoreFoundation 0x00071a54\uuuu CFRUNLOOP\u正在调用\u OUT\u到\u计时器\u回调\u函数\uuu8 13 CoreFoundation 0x00073ede\uuu CFRunLoopDoTimer+854 14 CoreFoundation 0x0007485e__CFRunLoopRun+1082 15 CoreFoundation 0x0001d8e4 CFRunLoopRunSpecific+224 16 CoreFoundation 0x0001d7ec CFRUNLOOPS运行模式+52 17图形服务0x000036e8 GSEventRunModal+108 18图形服务0x00003794 GSEventRun+56 19 UIKit 0x000062a0-[UIU应用程序运行]+396 20 UIKit 0x00004e10 UIApplicationMain+664 21财付通0x00006124总管(总管m:13) 22财付通0x00002324启动+44
这通常意味着您正在向已发布的对象发送消息,这是一个坏主意

从堆栈中可以看到它正在向对象发送释放消息。我建议该对象已被释放,因此保留计数为0。因此,进一步的释放将是无效的

我相信,如果你打开一个标志,我认为它被称为僵尸检测或类似的东西,那么任何发送到已发布对象的消息都会生成一个更具描述性的消息


也许一个更有经验的开发人员可以带着更多的细节跳到这里。

这通常意味着你正在向一个发布的对象发送一条消息,这是一个坏主意

从堆栈中可以看到它正在向对象发送释放消息。我建议该对象已被释放,因此保留计数为0。因此,进一步的释放将是无效的

我相信,如果你打开一个标志,我认为它被称为僵尸检测或类似的东西,那么任何发送到已发布对象的消息都会生成一个更具描述性的消息


也许一个更有经验的开发人员可以在这里提供更多细节。

是的,我相信Derek为您指明了正确的方向。在发送此释放消息之前,您是否可以列出您在活动控制器上执行的内存相关操作类型(当您尝试弹出释放消息时,该释放消息是隐式发送的)。请澄清您是否正在使用此控制器的自动释放等。。。此外,如果存在与此控制器相关联的属性(例如:@property(非原子、保留等)),查看这些属性可能会有所帮助。

是的,我相信Derek为您指明了正确的方向。在发送此释放消息之前,您是否可以列出您在活动控制器上执行的内存相关操作类型(当您尝试弹出释放消息时,该释放消息是隐式发送的)。请澄清您是否正在使用此控制器的自动释放等。。。此外,如果存在与此控制器相关联的属性(例如:@property(nonatomic、retain等)),查看这些属性可能会有所帮助。

感谢您的回复。这是由于其错误的解除锁定方法造成的。感谢您的回复。这是由其错误的解除锁定方法造成的。
myviewcontroller = [[[MyViewController alloc]init]autorelease];
[self.navigationController pushViewController:myviewcontroller animated:YES];
[myviewcontroller release]; //This is my bug !!!  I just fixed it.