#iphone #objective-c #ipad #crash
#iPhone #objective-c #iPad #сбой
Вопрос:
Я пытаюсь устранить сбой, который время от времени происходит непредсказуемо и в разные моменты времени во время использования моего приложения. Я был бы очень признателен за любую помощь, поскольку я не понимаю, что это может быть, я преобразовал в ARC и использовал @AutoReleasePool там, где это необходимо, все еще я получаю это время от времени…
Дата / время: 2011-11-09 11:30:40,661 0100 Версия ОС: iPhone OS 5.0 (9A334) Версия отчета: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x2fd74da8
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 CoreFoundation 0x36e1e786 -[NSArray isEqualToArray:] 14
1 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
2 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
3 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
4 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
5 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
6 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
7 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
8 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
9 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
10 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
11 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
12 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
13 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
14 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
15 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
16 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
17 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
18 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
19 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
20 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
21 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
22 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
23 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
24 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
25 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
26 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
27 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
28 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
29 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
30 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
31 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
32 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
33 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
34 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
35 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
36 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
37 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
38 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
39 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
40 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
41 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
42 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
43 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
44 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
45 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
46 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
47 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
48 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
49 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
50 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
51 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
52 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
53 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
54 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
55 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
56 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
57 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
58 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
59 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
60 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
61 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
62 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
63 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
64 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
65 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
66 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
67 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
68 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
69 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
70 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
71 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
72 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
73 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
74 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
75 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
76 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
77 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
78 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
79 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
80 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
81 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
82 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
83 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
84 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
85 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
86 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
87 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
88 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
89 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
90 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
91 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
92 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
93 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
94 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
95 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
96 CoreFoundation 0x36e1e876 -[NSArray isEqualToArray:] 254
97 CoreFoundation 0x36e271cc -[NSArray isEqual:] 64
98 CoreFoundation 0x36e1ef7e -[NSDictionary isEqualToDictionary:] 310
99 CoreFoundation 0x36e27d9c -[NSDictionary isEqual:] 64
100 CoreFoundation 0x36e27d40 -[__NSCFDictionary isEqual:] 48
этот поток продолжает работать с тем же синтаксисом примерно в 300 строках…
Комментарии:
1. похоже на переполнение стека — есть какая-либо рекурсия в вашем приложении — любые массивы или словари, вложенные внутри самих себя и т.д.
Ответ №1:
При отсутствии кода для просмотра наилучшая догадка заключается в том, что метод рекурсивно вызывает сам себя, прямо или косвенно, и не достигает завершения. Возможно, в NSDictionary
or NSArray
есть запись, которая ссылается обратно на саму себя.
Попробуйте приостановить выполнение в Xcode, если это возможно, чтобы получить представление, где в вашем коде это происходит.
Опубликуйте некоторый код.
Комментарии:
1. Я бы с удовольствием, хотя мое приложение довольно объемное с точки зрения кода, не могли бы вы указать мне, какая часть кода может иметь отношение?
2. Попробуйте приостановить работу в Xcode, чтобы получить представление о коде. Поместите NSLogs и / или точки останова в свой код, чтобы локализовать проблемную область. Ищите области, в которых
NSDictionary
илиNSArray
происходит перечисление или обработка.3. 1 для «Возможно, в NSDictionary или NSArray есть запись, которая ссылается обратно на саму себя». Я уверен, что именно это здесь и происходит.