2010-02-17 3 views

답변

2

음 첫째, 당신은 아마 어떤 경우 (가 화면 밖으로 후),하지 viewDidDisappear:viewWillDisappear: 물건을 해제하려면, 당신은 아마 viewDidDisappear:에서 ... viewDidDisappear:dealloc 모두

그것을 해제해야합니다 당신 메모리를 절약하기 위해 화면을 벗어난 상태에서 필요없는 것을 놓아야합니다. dealloc에서 개체가 유지할 수있는 모든 것을 해제해야합니다. 코드가 viewDidDisappear:이 호출되지 않는 이상한 경로를 통해 입력 된 경우에이를 viewDidDisappear:에 공개할지 여부에 관계없이이 작업을 수행하려고합니다. 뷰 콘트롤러를 다른 컨텍스트에서 재사용 할 때 또는 VC를 저장하고있는 콜렉션 뷰 컨트롤러에 대한 Apple의 변경 사항이있을 때 발생할 수 있습니다.

ivars를 적절히 제거하지 않는 한 (자동으로 속성을 사용하는 경우 발생해야합니다.) 그런 다음 두 릴리즈 모두에서 릴리스 메시지를 보내지 않을 것이므로 두 위치에서 릴리스하면 문제가되지 않습니다.

+0

어쨌든 viewDidUnload? – willcodejavaforfood

+0

일부 리소스는 해당 리소스를 배포하기에 적합하며 실제로 수행중인 작업에 따라 다릅니다. 핵심은 VC가 실행되는 동안 메모리 압력이나 이벤트에 대한 응답으로 객체를 해제 할 수 있는지 여부에 관계없이 VC가 보유한 모든 객체가 dealloc에서 해제되었는지 확인해야합니다. –

+0

좋은 답변입니다! 감사! –

관련 문제