2014-11-20 1 views
0

나는 왜 내 SKScenes 중 하나가 지금은 할당을 취소하지 않는지 알아 내려고 노력해 왔습니다. 저는 Instruments에 따라 모든 누수를 차단했으며 모든 completion 블록에 대해 __weak 개의 참조를 사용했습니다. SKScene이 할당 해제되지 않는 이유를 알아내는 다음 단계는 무엇입니까? 내가 NSLog을 가지고 있는데, 이것은 dealloc라는 메소드가 호출되지 않았 음을 확인하고, 게임 씬이 악기에서 재생 될 때마다 할당 힙이 계속 커집니다.SKScene 할당 해제 문제를 진단하기위한 다음 단계는 무엇입니까?

+1

장면이 할당 해제를 시작할 때까지 코드를 제거하십시오. – LearnCocos2D

+0

@ LearnCocos2D 그럴 것이지만 장면은 4,000 줄입니다. 내가 그렇게 할지라도, 나는 임의의 코드를 제거하지 않고 시작하기를 원할 것이다. – Todd

+1

리팩토링을 시작하십시오. 아주 새로운 장면을 만들고 하나씩 코드 (또는 노드)를 새로운 장면으로 이동하십시오. 4000 줄의 코드가 너무 많습니다. 1000 줄 이하로 유지하는 것이 좋습니다. LearnCocoa2D가 말했듯이, 코드를 제거하십시오. 나는 당신이 그것을 알아낼 것이라고 확신합니다. –

답변

0

블록 코드가있는 경우 해당 블록을 확인하고 자체 참조를 포함하는 블록이 없는지 확인하십시오. 블록 안의 ivars를 참조하면 자기 자신에 대한 소유권을 유지합니다.