는, 더 구체적으로 this comment을 this question을 다음과 :는
는때문에 타이머의 목표는 소유자
I 인 일반적인 경우에 (일명 강한 참조) 사이클을 유지 왜 dealloc
이 NSTimer
을 무효로하는 좋은 장소가 아닌지 궁금합니다.
NSTimer
무효화를 수행 한 다음 무효화를 사용하여 dealloc
에 내 애플리케이션을 프로파일 링하고 메모리를 올바르게 해제했음을 기억합니다.
dealloc
은 최신 iOS에서 다르게 작동합니까?
사실 은 NSObject
할당 해제 이전에 호출 되었습니까? dealloc
은 무엇을 위해 심지어 사용됩니까? 각각의 객체의 속성을 수동으로 할당 해제하지 않았다면?
NSTimer가 개체를 보유하고 있기 때문에 Dealloc이 호출되지 않습니다 (따라서 NSTimer가 무효화됩니다) – ogres
시스템에서'-dealloc' 메서드를 호출하는 중 _ 해제 된 개체를 할당 해제하려고 할 때 의존 할 수 없습니다 _when_에서 타이머가 실행되는 동안 실제로 발생합니다. 반면에'-dealloc'이 결코 트리거되지 않을 때 우발적으로 강력한 유지주기를 만들 수 있으며 타이머가 백그라운드에서 멈추어 더 이상 필요하지 않은 작업을 수행 할 수있어 일관성없는 행동을 유발할 수 있습니다 심지어는 충돌하지만 앱을 나쁜 메모리 시민으로 만드는 것은 분명합니다. – holex
'dismissViewController : animated :'를 호출 한 후에'UIViewController'의'dealloc'이 호출되지 않았습니까? –