应用程序因EXC_BAD_ACCESS而崩溃

时间:2011-02-07 14:22:27

标签: iphone

异常类型:EXC_BAD_ACCESS(SIGBUS) 异常代码:KERN_PROTECTION_FAILURE位于0x00000000 崩溃的线程:0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x00004420 objc_msgSend + 24
1   CoreFoundation                  0x000042a6 CFRetain + 54
2   CoreFoundation                  0x0000a9f0 __CFBasicHashStandardRetainValue + 8
3   CoreFoundation                  0x000054c0 __CFBasicHashAddValue + 100
4   CoreFoundation                  0x00006184 CFBasicHashAddValue + 276
5   CoreFoundation                  0x00006cfe CFDictionaryCreate + 58
6   CoreFoundation                  0x00033d7c -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 1456
7   CoreFoundation                  0x000361bc -[NSDictionary initWithObjectsAndKeys:] + 776
8   iota                            0x0000c4cc 0x1000 + 46284
9   iota                            0x00009282 0x1000 + 33410
10  iota                            0x0000952a 0x1000 + 34090
11  Foundation                      0x00015432 _nsnote_callback + 150
12  CoreFoundation                  0x000271da __CFXNotificationPost_old + 390
13  CoreFoundation                  0x00026e7a _CFXNotificationPostNotification + 122
14  Foundation                      0x0000b9f6 -[NSNotificationCenter postNotification:] + 138
15  Foundation                      0x0007ae02 postQueueNotifications + 258
16  Foundation                      0x0007afae __NSPostIdleQueueNotes + 6
17  CoreFoundation                  0x00031084 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
18  CoreFoundation                  0x00030eb2 __CFRunLoopDoObservers + 494
19  CoreFoundation                  0x00028206 __CFRunLoopRun + 934
20  CoreFoundation                  0x00027d74 CFRunLoopRunSpecific + 220
21  CoreFoundation                  0x00027c82 CFRunLoopRunInMode + 54
22  GraphicsServices                0x00004e84 GSEventRunModal + 188
23  UIKit                           0x00004f8c -[UIApplication _run] + 564
24  UIKit                           0x000024cc UIApplicationMain + 964
25  iota                            0x0000533a 0x1000 + 17210
26  iota                            0x000052fc 0x1000 + 17148


NSDictionary *contactNameDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:item, @"contact", sortName, @"contactSortName", compositeName, @"compositeName", nil];

崩溃是随机的。就像它在特定行动的15次试验中发生一次。

4 个答案:

答案 0 :(得分:2)

KERN_PROTECTION_FAILURE - 表示您的程序正在访问它无权访问的共享内存。这就是为什么kenel发送了你的进程。我很确定你的一些指针指向了错误的位置。 E.g。

NSObject* obj;
obj会有垃圾作为它的价值。你必须这样声明:

NSObject* obj = nil;

答案 1 :(得分:0)

没有更多信息,很难说。通常是因为你试图访问/插入一个不再存在的对象。

答案 2 :(得分:0)

检查你是否没有插入不是NSObject实例的东西,比如int或者什么。

答案 3 :(得分:0)

鉴于你正在使用initWithObjectsAndKeys:,请确保你没有终止参数列表,因为这是一个可能导致崩溃的常见错误。