Невозможно понять истинную причину этого символического отчета о сбое, затрагивающего только пользователей iOS 4.3.x - PullRequest
0 голосов
/ 11 февраля 2012

Многие пользователи моего приложения испытывают следующие сбои.

Это влияет только на пользователей на iOS 4.3.x (устройство может быть любым - iPhone / iPad / iPod)

0    libobjc.A.dylib 0x34f00c98 objc_msgSend + 15
1    CoreFoundation 0x3134bc43 -[NSObject(NSObject) release] + 30
2    UIKit 0x314c900f -[UIViewController dealloc] + 174
3    UIKit 0x3151f0cd -[UITableViewController dealloc] + 124
4    MyApp 0x0001f985 -[WebNotesListViewController dealloc] (WebNotesListViewController.m:61)
5    CoreFoundation 0x3134bc43 -[NSObject(NSObject) release] + 30
6    MyApp 0x41b3 __arclite_objc_storeStrong (arclite.m:252)
7    MyApp 0x000bc44d -[CountTouchGR .cxx_destruct] (CountTouchGR.m:13)
8    libobjc.A.dylib 0x34f01961 object_cxxDestructFromClass + 52
9    libobjc.A.dylib 0x34f03b15 object_cxxDestruct + 12
10   libobjc.A.dylib 0x34f03b25 objc_destructInstance + 12
11   libobjc.A.dylib 0x34f01917 object_dispose + 26
12   CoreFoundation 0x3134bee5 -[NSObject(NSObject) dealloc] + 24
13   UIKit 0x314aead7 -[UIGestureRecognizer dealloc] + 346
14   UIKit 0x316aefc3 -[UISwipeGestureRecognizer dealloc] + 62
15   CoreFoundation 0x3134bc43 -[NSObject(NSObject) release] + 30
16   CoreFoundation 0x3134c1a1 CFRelease + 68
17   CoreFoundation 0x31352139 -[__NSArrayM removeObjectAtIndex:] + 88
18   CoreFoundation 0x3135a9dd -[NSMutableArray removeAllObjects] + 36
19   UIKit 0x31470fcf -[UIView(UIViewGestures) removeAllGestureRecognizers] + 174
20   UIKit 0x31470e6f -[UIView dealloc] + 294
21   UIKit 0x315b27e5 -[UIScrollView dealloc] + 252
22   UIKit 0x315bed0d -[UITableView dealloc] + 676
23   CoreFoundation 0x3134bc43 -[NSObject(NSObject) release] + 30
24   UIKit 0x314828df -[UIViewController setView:] + 270
25   UIKit 0x315759cb -[UIViewController unloadViewForced:] + 78
26   UIKit 0x315856b9 -[UIViewController unloadViewIfReloadable] + 16
27   UIKit 0x315cc12d -[UIViewController purgeMemoryForReason:] + 40
28   UIKit 0x315cc14d -[UIViewController didReceiveMemoryWarning] + 16
29   MyApp 0x0001fc3b -[WebNotesListViewController didReceiveMemoryWarning] (WebNotesListViewController.m:101)
30   UIKit 0x315cc163 -[UIViewController _didReceiveMemoryWarning:] + 14
31   Foundation 0x34c28183 _nsnote_callback + 142
32   CoreFoundation 0x313b620f __CFXNotificationPost_old + 402
33   CoreFoundation 0x31350eeb _CFXNotificationPostNotification + 118
34   Foundation 0x34c255d3 -[NSNotificationCenter postNotificationName:object:userInfo:] + 70
35   Foundation 0x34c271c1 -[NSNotificationCenter postNotificationName:object:] + 24
36   UIKit 0x315a2361 -[UIApplication _performMemoryWarning] + 48
37   UIKit 0x315a2d83 -[UIApplication _receivedMemoryNotification] + 126
38   UIKit 0x315a0507 _memoryStatusChanged + 42
39   CoreFoundation 0x313b6d69 __CFNotificationCenterDarwinCallBack + 24
40   CoreFoundation 0x313b3bdf __CFMachPortPerform + 210
41   CoreFoundation 0x313bea97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26
42   CoreFoundation 0x313c083f __CFRunLoopDoSource1 + 166
43   CoreFoundation 0x313c160d __CFRunLoopRun + 520
44   CoreFoundation 0x31351ec3 CFRunLoopRunSpecific + 230
45   CoreFoundation 0x31351dcb CFRunLoopRunInMode + 58
46   GraphicsServices 0x30cd041f GSEventRunModal + 114
47   GraphicsServices 0x30cd04cb GSEventRun + 62
48   UIKit 0x31477d69 -[UIApplication _run] + 404
49   UIKit 0x31475807 UIApplicationMain + 670
50   MyApp 0x4239 main (main.m:14)

Я не могу расшифровать истинную причину (может ли преобразование в ARC иметь к этому отношение?).

Ответы [ 4 ]

2 голосов
/ 11 февраля 2012

Вы отправляете сообщение объекту, который уже был освобожден. Попробуйте воспроизвести сбой при использовании инструмента NSZombies .

Также, без Зомби, попробуйте установить точку останова в начале [WebNotesListViewController dealloc] и проходить до тех пор, пока вы не столкнетесь с аварией.

1 голос
/ 11 февраля 2012

В didReceiveMemoryWarning методе WebNotesListViewController вы делаете что-то, что не должны делать, освобождая память - сложно сказать, что именно, но, похоже, что-то связано с вашим столом.

Уверен, что это связано с преобразованием ARC, посмотрите, что может делать код в этом методе.

EDIT:

При втором взгляде, у вас все еще есть существо в вашем классе WebNotesListViewController - сбой действительно происходит из-за освобождения этого класса.

1 голос
/ 11 февраля 2012

Похоже, WebNotesListViewController.m: 101 получил предупреждение памяти.Следовательно это (представление) было выгружено и в процессе освобождено.И затем один из его атрибутов был указан как EXEC_BAD_ACCESS

0 голосов
/ 11 февраля 2012

Проблема была связана с CountTouchGR классом ... Я не знаю точной технической причины ... но ее нужно было объявить как глобальную переменную, а не в viewDidLoad, как это делалось ранее.

Спасибо всем, кто пытался помочь.

...