iOS应用程序偶尔会崩溃 - 在屏幕显示或向下滚动时

时间:2013-05-20 11:52:44

标签: iphone ios objective-c memory-management crash

我的iOS应用在某个屏幕上崩溃了。偶尔会发生这种情况。

应用程序有时会在屏幕出现时崩溃,或者有时在我们向下滚动屏幕时崩溃。这是崩溃报告:

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0xe0000010
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                     0x3958af2a _objc_release + 10
1   CoreFoundation                      0x31637441 __CFAutoreleasePoolPop + 17
2   Foundation                          0x31f5c01d -[NSAutoreleasePool release] + 121
3   UIKit                               0x335437e1 -[UITableView layoutSubviews] + 225
4   UIKit                               0x334ff803 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 259
5   QuartzCore                          0x332a9d8b -[CALayer layoutSublayers] + 215
6   QuartzCore                          0x332a9929 CA::Layer::layout_if_needed(CA::Transaction*) + 461
7   QuartzCore                          0x332aa85d CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 17
8   QuartzCore                          0x332aa243 CA::Context::commit_transaction(CA::Transaction*) + 239
9   QuartzCore                          0x332aa051 CA::Transaction::commit() + 317
10  QuartzCore                          0x332e10f7 CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 255
11  QuartzCore                          0x332e0ff1 CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 65
12  IOMobileFramebuffer                 0x35538fd7 IOMobileFramebufferVsyncNotifyFunc + 155
13  IOKit                               0x322db449 _IODispatchCalloutFromCFMessage + 193
14  CoreFoundation                      0x316be5db __CFMachPortPerform + 119
15  CoreFoundation                      0x316c9173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35
16  CoreFoundation                      0x316c9117 __CFRunLoopDoSource1 + 139
17  CoreFoundation                      0x316c7f99 __CFRunLoopRun + 1385
18  CoreFoundation                      0x3163aebd _CFRunLoopRunSpecific + 357
19  CoreFoundation                      0x3163ad49 _CFRunLoopRunInMode + 105
20  GraphicsServices                    0x351ed2eb _GSEventRunModal + 75
21  UIKit                               0x33550301 _UIApplicationMain + 1121
22  Numerology                          0x00021313 main (main.m:13)

我试图通过代码查找可能的异常来源,但我无法追踪异常。

请告知。

由于

1 个答案:

答案 0 :(得分:3)

SIGSEGV是一个分段错误,这意味着您正在尝试访问无效的内存地址。

SIGSEGV字面意思是说您正在访问您不拥有的地址。所以你不一定要访问已发布的对象;你可以访问一个从未存在的对象,如:

UIView *myView; // uninitialised, may point to anything
[myView setFrame:someFrame];

甚至只是在C级非对象内容中出错,例如:

int array[100];
array[1000] = 23; // out-of-bounds access

因此,请仔细检查您的代码。可能是你发现了这个错误。