EXC_BAD_ACCESS(SIGSEGV)和KERN_INVALID_ADDRESS位于0xa0000008

时间:2011-08-05 18:37:30

标签: iphone sigsegv

我有一个问题,不时发生,我找不到 解决方案,有人可以帮助我吗?谢谢

以下是崩溃的日志以及调用方法的位置

0   libobjc.A.dylib                 0x00003fb0 objc_msgSend + 16
1   Authentic                   0x00048ce2 -[JobsSubtitleView touchUp:] (JobsSubtitleView.m:172)
2   CoreFoundation                  0x00026486 -[NSObject performSelector:withObject:withObject:] + 46
3   UIKit                           0x00032bf8 -[UIApplication sendAction:to:from:forEvent:] + 56
4   UIKit                           0x00032bb4 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 24
5   UIKit                           0x00032b92 -[UIControl sendAction:to:forEvent:] + 38
6   UIKit                           0x00032902 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 486
7   UIKit                           0x0003307a -[UIControl touchesEnded:withEvent:] + 470
8   UIKit                           0x00031914 -[UIWindow _sendTouchesForEvent:] + 312
9   UIKit                           0x0003133a -[UIWindow sendEvent:] + 374
10  UIKit                           0x000076e6 -[UIApplication sendEvent:] + 350
11  UIKit                           0x000070d2 _UIApplicationHandleEvent + 5802
12  GraphicsServices                0x00004f44 PurpleEventCallback + 876
13  CoreFoundation                  0x00083a28 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ +         32
14  CoreFoundation                  0x000839ca __CFRunLoopDoSource1 + 134
15  CoreFoundation                  0x000825f0 __CFRunLoopRun + 1364
16  CoreFoundation                  0x00023f72 CFRunLoopRunSpecific + 294
17  CoreFoundation                  0x00023e3a CFRunLoopRunInMode + 98
18  GraphicsServices                0x0000411e GSEventRunModal + 150
19  UIKit                           0x00002472 UIApplicationMain + 1074
20  Authentic                   0x0006bbd0 main (main.m:17)
21  Authentic                   0x00002e8c start + 32


- (void) touchUp:(id)sender {
if(![[UIApplication sharedApplication] isNetworkActivityIndicatorVisible]) {
    UIButton *jobsSubtitleButton = (UIButton*)sender;
    [jobsSubtitleButton setSelected:!jobsSubtitleButton.selected];
    [jobsViewController setClickType:YES]; /*** LINE 172 ***/
    if(![jobsViewController isSearching]) {
        [jobsViewController setIsSearching:YES];
        if([jobsViewController clickType]) {
            [self performSelector:@selector(reloadJobs) withObject:nil afterDelay:1.0f];             
        } else {
            [self performSelector:@selector(reloadJobs) withObject:nil];    
        }   
    }
}

}

1 个答案:

答案 0 :(得分:0)

您没有提供足够的代码来清除问题的根本原因。发生崩溃是因为对象中的jobsViewController ivar指向已释放的对象。但是为什么它在此时被解除分配?基于此代码无法知道。最可能的原因是您忘记保留它或该财产未被声明为“保留”。但是,可能存在许多编程错误,这些错误是根本原因。您需要进行代码审查,专门查找与不保留jobsViewController指向的对象相关的问题。