재현 할 수없는 크래시 보고서를 수집 한 앱이 있습니다. 자체 메모리 경고를 처리 할 때 간단히 [super didReceiveMemoryWarning]
을 호출하는 뷰 컨트롤러가 있습니다 (예,이 작업을 수행 할 필요는 없지만 현재 문제가있는 것은 아닙니다). 그것은 여기[super didReceiveMemoryWarning]을 (를) 호출하려고 할 때 오류가 발생했습니다
와 충돌 purgeMemoryForReason을 호출하려고 UIViewController에 부모가 관련 추적 정보되면 :
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x90000008
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x361dbf78 objc_msgSend + 16
1 UIKit 0x31fbf499 -[UIViewController purgeMemoryForReason:] + 65
2 MyApp 0x00016f0d -[AttributesViewController didReceiveMemoryWarning] (AttributesViewController.m:76)
3 Foundation 0x30c5b4ff __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 + 19
4 CoreFoundation 0x34d86547 ___CFXNotificationPost_block_invoke_0 + 71
5 CoreFoundation 0x34d12097 _CFXNotificationPost + 1407
6 Foundation 0x30bcf3eb -[NSNotificationCenter postNotificationName:object:userInfo:] + 67
7 Foundation 0x30bd0c1b -[NSNotificationCenter postNotificationName:object:] + 31
8 UIKit 0x31f8a271 -[UIApplication _performMemoryWarning] + 81
9 UIKit 0x31f8a36b -[UIApplication _receivedMemoryNotification] + 175
10 libdispatch.dylib 0x30de42e1 _dispatch_source_invoke + 517
11 libdispatch.dylib 0x30de1b81 _dispatch_queue_invoke$VARIANT$mp + 53
12 libdispatch.dylib 0x30de1ec1 _dispatch_main_queue_callback_4CF$VARIANT$mp + 157
13 CoreFoundation 0x34d8d2ad __CFRunLoopRun + 1269
14 CoreFoundation 0x34d104a5 CFRunLoopRunSpecific + 301
15 CoreFoundation 0x34d1036d CFRunLoopRunInMode + 105
16 GraphicsServices 0x3600c439 GSEventRunModal + 137
17 UIKit 0x31e06e7d UIApplicationMain + 1081
18 MyApp 0x0000243b main (main.m:15)
나는 메모리가에 경고 트리거 횟수 내가 상관없이 오류를 재현 없지만, 수 있으면 좋겠다 내 테스트 장치 또는 시뮬레이터 나는 이것이 일어날 수 없습니다. 잠재적 인 문제를 지적한 정보를 찾지 못해서 내가 찾은 결과에 대한 도움을 주시면 감사하겠습니다. 감사!
편집 : 내가 언급 한 바와 같이, 내가 didReceiveMemoryWarning
에 아무것도 아니에요 :
- (void) didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
예, 나는이 작업을 수행 할 필요가 없습니다 알고있다. 나는이 코드를 제거 할 계획을 가지고있다. (나는 아직도 왜 그 코드가 들어 있는지 알지 못한다.) 그러나 나는 문제의 근원을 고쳐야한다. 나는
viewDidUnload
을
AttributesViewController
에 포함시키지 않았습니다. 나는 ARC를 사용하고 있다고 언급 했어야했는데, 여기에 문제가 있는지 없는지 확실하지 않다.
피드백을 받았기 때문에 카메라를 사용할 때 메모리 경고가 발생합니다 (소스 유형이 UIImagePickerControllerSourceTypeCamera
인 UIImagePickerController
). AttributesViewController
은 UIImagePickerController
을 나타내는보기 컨트롤러보다 2 단계 위의보기 컨트롤러에 의해 모달로 표시되며 개체 나 다른 데이터를 공유하지 않습니다. 나는 카메라가 자주 메모리 경고를 일으킨다는 것을 안다. 따라서 UIImagePickerController
이 메모리 hog라는 사실 이외의 어떤 식 으로든 관련이 있는지 확실하지 않다.
나는 항상 분석기를 실행하도록 Xcode를 설정 했으므로 문제가 발생하지 않았습니다. 또한 Zombies and Leaks 도구를 통해 코드를 실행했으며 문제를 재현하거나 다른 문제를 찾을 수 없었습니다.
좀비 사용을 시도 했습니까? – zneak