Анализ на сривове в мрежата на AF за EXC_BAD_ACCESS KERN_INVALID_ADDRESS

Получавам доклади за сривове на AFNetworking, хвърлящ EXC_BAD_ACCESS KERN_INVALID_ADDRESS:

Thread : Crashed: com.apple.root.default-priority
0  libobjc.A.dylib                0x39e237fa objc_release + 9
1  MY_APP                         0x0015ba63 __64-[AFHTTPRequestOperation setCompletionBlockWithSuccess:failure:]_block_invoke (AFHTTPRequestOperation.m:266)
2  MY_APP                         0x00163bf7 __47-[AFURLConnectionOperation setCompletionBlock:]_block_invoke (AFURLConnectionOperation.m:301)
3  Foundation                     0x3049a2a9 __103+[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]_block_invoke96 + 12
4  libdispatch.dylib              0x3a30b0c3 _dispatch_call_block_and_release + 10
5  libdispatch.dylib              0x3a3107d9 _dispatch_root_queue_drain + 224
6  libdispatch.dylib              0x3a3109c5 _dispatch_worker_thread2 + 56
7  libsystem_pthread.dylib        0x3a43adff _pthread_wqthread + 298

Имам нужда от помощ, за да разбера възможната грешка. Това е нещо, което се случва понякога, всъщност е много рядко и може да е свързано с проблем с изчакване, когато потребителят използва 3G (мрежата може да бъде прекъсната, докато се зареждат данни).

Не публикувам кода си, защото не мога да намеря в журнала за сривове в кой файл или клас се е случил този срив и използвам AFNetworking в много файлове.


person estemendoza    schedule 10.03.2014    source източник
comment
Използвали ли сте анализатора на Xcode, за да идентифицирате потенциални грешки във вашия код?   -  person bneely    schedule 11.03.2014
comment
Да, но както казах, изглежда е грешка, която не мога да я възпроизведа, защото може да е свързано с проблеми с клетъчната връзка   -  person estemendoza    schedule 11.03.2014


Отговори (1)


Без никакъв код всичко това е предположение, но:

Има достъп до нещо в блока за завършване, след като бъде освободено. Обикновено това се случва, когато мрежова операция не е отменена, след като контролерът за изглед е отхвърлен.

person Kevin    schedule 10.03.2014
comment
Добре, благодаря, ще проверя дали се справям с мрежовите операции, след като изгледът бъде отхвърлен - person estemendoza; 11.03.2014
comment
Как да отмените мрежова операция, след като контролерът за изглед е отхвърлен? - person shim; 26.04.2014
comment
Зависи от модела/архитектурата, която използвате, но в най-простата форма поддържайте препратка към създадената връзка. След това извикайте отмяна в точното време (варира, viewDidDisappear може да е добро място за начало) - person Kevin; 28.04.2014