2009-09-04 87 views
0

从测试版测试人员那里获得崩溃报告,并且无法识别问题的根源。尝试设置UIButton(screenOverlay)时显然出现了问题。下面是它的创作在viewDidLoad中:正在发生如何从iPhone读取崩溃报告

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
button.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); 
button.backgroundColor = [UIColor blackColor]; 
button.alpha = 0.0; 
button.hidden = YES; 
[button addTarget:self.noteView action:@selector(backgroundClicked:) forControlEvents:UIControlEventTouchUpInside]; 
self.screenOverlay = button; 
[self.view addSubview:screenOverlay]; 
[button release]; 

奇怪的这个崩溃观点装好后...也许viewDidLoad中被再次称为键盘正在移动屏幕外?无论如何,任何退伍军人都有一些关于如何在获得这些东西时接近这些东西的智慧话语?

这里是堆栈跟踪。如果您觉得有价值,请上传休息片段。

Date/Time:  2009-09-04 08:42:05.341 -0700 
    OS Version:  iPhone OS 3.0.1 (7A400) 
    Report Version: 104 

    Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
    Exception Codes: KERN_INVALID_ADDRESS at 0x80000408 
    Crashed Thread: 0 

    Thread 0 Crashed: 
    0 libobjc.A.dylib 0x30011960 objc_msgSend + 52 
    1 libobjc.A.dylib 0x3001313c objc_setProperty + 160 
    2 MyApp   0x00003258 -[ItemizeViewController setScreenOverlay:] (ItemizeViewController.m:24) 
    3 MyApp   0x00003920 -[ItemizeViewController viewDidLoad] (ItemizeViewController.m:229) 
    4 UIKit   0x3093d5e4 -[UIViewController view] + 152 
    5 UIKit   0x30a56d84 -[UIViewController contentScrollView] + 24 
    6 UIKit   0x30973ee0 -[UINavigationController _startTransition:fromViewController:toViewController:] + 180 
    7 UIKit   0x30973d90 -[UINavigationController _startDeferredTransitionIfNeeded] + 256 
    8 UIKit   0x309a7468 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 400 
    9 UIKit   0x309a72c8 -[UINavigationController popViewControllerAnimated:] + 32 
    10 UIKit   0x309a7a0c -[UINavigationController navigationBar:shouldPopItem:] + 132 
    11 UIKit   0x309a77e8 -[UINavigationBar popNavigationItemAnimated:] + 184 
    12 UIKit   0x30a3667c -[UINavigationBar _handleMouseUpAtPoint:] + 536 
    13 UIKit   0x30a34f64 -[UINavigationBar touchesEnded:withEvent:] + 84 
    14 UIKit   0x309a60d4 -[UIWindow _sendTouchesForEvent:] + 520 
    15 UIKit   0x309a5464 -[UIWindow sendEvent:] + 108 
    16 UIKit   0x30936e3c -[UIApplication sendEvent:] + 400 
    17 UIKit   0x30936874 _UIApplicationHandleEvent + 4336 
    18 GraphicsServices 0x32046964 PurpleEventCallback + 1028 
    19 CoreFoundation 0x30254a70 CFRunLoopRunSpecific + 2296 
    20 CoreFoundation 0x30254164 CFRunLoopRunInMode + 44 
    21 GraphicsServices 0x3204529c GSEventRunModal + 188 
    22 UIKit   0x308f0374 -[UIApplication _run] + 552 
    23 UIKit   0x308eea8c UIApplicationMain + 960 
    24 MyApp   0x00002090 main (main.m:14) 
    25 MyApp   0x0000202c start + 44 

Thread 1: 
0 libSystem.B.dylib    0x31d47158 mach_msg_trap + 20 
1 libSystem.B.dylib    0x31d49ed8 mach_msg + 60 
2 CoreFoundation     0x3025454e CFRunLoopRunSpecific + 982 
3 CoreFoundation     0x30254164 CFRunLoopRunInMode + 44 
4 WebCore       0x3588dbc8 RunWebThread(void*) + 412 
5 libSystem.B.dylib    0x31d705a0 _pthread_body + 20 

Thread 0 crashed with ARM Thread State: 
    r0: 0x0018e4e0 r1: 0x300991c4  r2: 0x43a00000  r3: 0x00001108 
    r4: 0x80000408 r5: 0x00000001  r6: 0x00000000  r7: 0x2fffeb94 
    r8: 0x43a00000 r9: 0x001fc098  r10: 0x301038dc  r11: 0x30082134 
    ip: 0x381fd03c sp: 0x2fffeb74  lr: 0x30013144  pc: 0x30011960 
    cpsr: 0xa0000010 
+0

screenOverlay如何定义?它是如何设置为ItemizeViewController的属性的? – executor21 2009-09-04 19:48:05

+0

@property(nonatomic,retain)UIButton * screenOverlay; – Meltemi 2009-09-04 19:49:26

回答

4

从上面的代码,即时看到以下

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

,然后你调用[按钮释放],现在这可能会导致你的问题,你叫CLAS方法不保留该对象,因为它是autoreleased,所以你正在调用释放对象,稍后当它试图autorelease它,你会得到崩溃......非常确定这是你的问题...删除[buttom释放],你应该没问题,这基本上是过度释放问题

+0

确实!傻我。奇怪的是,因为它每20次左右就会崩溃......我的大部分释放问题都会立即引起爆炸! thx为您的帮助! – Meltemi 2009-09-04 22:13:40