이상한 동작이 있습니다. 내 응용 프로그램은 UINavigationController
으로 시작됩니다. 보기 컨트롤러 ANavigationController
을 밀면 돌아가서 모든 것이 잘 작동한다는 경고를 시뮬레이트합니다. 나는 동일한 뷰 컨트롤러 (ANavigationController
) 같은 방식을 누르면iOS 메모리 경고가 할당 취소 된 UIViewController에 전송되었습니다.
돌아가서 메모리 경고를 시뮬레이션 - 응용 프로그램이 충돌을 오류 :
[ANavigationController retain]
: message sent to deallocated instance.
내가 밀어 컨트롤러 및 할당 취소의 주소를 인쇄 한이 디버깅하는 동안 하나 먼저 푸시 온
- - 푸시 제어부 주소
0xDA724F0
이다. - 돌아가서 메모리 경고를 시뮬레이트하면됩니다.
- 두 번째 푸시 - 주소가있는 컨트롤러의 방법
0xDA724F0
이라고합니다. - 새로 푸시 된 컨트롤러 주소는
0xFA720F0
입니다.
다시 가서 오류 메모리 경고 충돌 시뮬레이션 :
[ANavigationController retain]
: message sent to deallocated instance0xDA724F0
.
편집
내가 ARC를 사용하고합니다.
편집
NSZombie를 할당을 테스트하기 위해 악기를 실행하고 활성화 한 후 나는 그러나, 예상되는 장소에서 사고를 가지고 -1 참조 카운트가 UIkit
라이브러리에보고하고 책임있는 발신자는 다음과 같습니다
+[UIViewController _traverseViewControllerHierarchyWithDelayedReleaseArray:block:]
예외가 throw 될 때 '모든 예외'중단 점을 설정하고 스택에서 어떤 일이 일어나는지 살펴보십시오. 어딘가에 나쁜 포인터가있는 것처럼 들리므로 이제 찾아야합니다. 요즘 ARC를 사용하고 있는지 알면 도움이 될 것입니다. 요즘에는 그렇지 않을 이유가 거의 없습니다. – Caleb
didReceieveMemoryWarning에서 뭐하고 있니? – CW0007007
아무 것도. [super didReceieveMemoryWarning]에게 전화 해주세요. 또한 델리게이트와 관련된 문제를 제거하기 위해 모든 클래스를 지우고 가장 간단한 상태로 두었습니다. 배경색을 배경으로 설정하는 것입니다. – Misha