2012-05-29 6 views
4

첫 번째 앱이 완성 될 즈음에 갑자기 앱에서 메모리 누수가 발생하고 있습니다. 나는 몇 가지 누출을 발견하고 고쳤다. 이제 NSZombie가 활성화되었을 때 누수는 없었지만 놀랍게도 주로 프레임 워크에서 나온 누수가 4000 개가 넘습니다.NSZombie가 활성화되어있을 때 왜 이러한 모든 누수가 발생합니까?

NSZombie의 정확한 사용법과 혼동 스럽습니다. 좀비를 찾는 용도로만 사용 되었습니까? 아니면 누출을 찾는 데 유용합니까? 여기

는 프레임 워크와 연관된 모든 누수를 보여주는 스크린 샷입니다 :

NSZombie는 "해제"메모리를 해제하지 않을 수 있습니다 경우

Screenshot for leaks

답변

5

명령 줄 옵션 'NSDeallocateZombies'의 기본값은 NO입니다. 따라서 좀비는 할당 해제되지 않으므로 좀비 (NSZombiesEnabled)가 켜져 있으면 좀비가 누수로 표시됩니다. 좀비로 누출 검사를 절대로하지 마십시오. NSDeallocateZombies를 YES로 설정할 수는 있지만 Instrument와 어떻게 상호 작용하는지 잘 모르겠습니다. 좀비는 예외가있는 모든 메시지에 응답하는 특수 객체입니다. 이것을 유용하게 만들기 위해서는 오랜 시간 동안 살아야한다. (그래서 할당 취소 된 객체를 재사용하려고 할 때 잡을 수있다.) 그렇기 때문에 누수와 똑같이 보일 수있다.

+0

Brilliant !!! 내 경우 NSDellocateZombie 기본값은 NO입니다. 나는 그것을 켜고 더 이상의 누수가 보이지 않는다. 좀비로 누출을 테스트하지 말 것을 제안 했으므로 내 문제의 완벽한 해결책처럼 보입니다. 답장을 보내 주셔서 감사합니다. – vijaykumarg

1

. NSZombie는 이미 출시 된 객체를 사용하는 경우 테스트에 사용됩니다.

+0

지금 알겠지만 NSZombie는 dellocated 객체에 메시지를 보내고 있는지 확인하는 용도로만 사용됩니다. 내가 틀렸다면 나를 바로 잡으세요. – vijaykumarg

+0

예, 이것은 과다 출시 및 조기 출시를 추적 할 때 사용할 도구입니다. 여기에서 설명을 읽을 수 있습니다. http://cocoadev.com/wiki/NSZombieEnabled – JMBise

+0

링크를 제공해 주셔서 감사합니다. 완벽한 아파트. – vijaykumarg

관련 문제