2009-09-04 84 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