애플에 따르면, 그들은 viewWill/DidUnload
에있는 것들을 파괴함으로써 얻을 수있는 이득이 최소가되기에 충분한 전망을위한 내부 메모리 관리를 개선했다. 게다가 그들은 많은 앱이 추락한다는 데이터를 가지고 있습니다. 앱이 이러한 알림을 제대로 처리하지 못하고 뷰 언로드와 관련이없는 '기타'작업을 수행하기 때문입니다.
마지막으로, 메모리 부족으로 인해 응용 프로그램이 종료되기 전에 얻을 수있는 첫 번째이자 유일한 경고로 메모리 경고가 확인되므로 실제로 메모리 문제를 처리 할 수있는 장소입니다.
기본적으로 viewWillUnload
및 viewDidUnload
방법을 삭제하면됩니다. didReceiveMemoryWarning
및 기타 적절한보기 컨트롤러 관리에서 메모리 문제를 처리하십시오.
편집 물어 수
: 그 "appropiate 장소"무엇인가? 내가보기에 [Will/Did] Disappear가 완전히 적합하지 않은 특정 상황에서 ViewdidUnload를 사용했습니다. 내비게이션 컨트롤러 스택을 계속 내려가는 것과 같습니다. 더 자세히 설명해 주시겠습니까? - Dan1one
다릅니다. 나는 그것이 당신이 듣고 싶어하는 것이 아니라는 것을 알고 있습니다. 사실입니다 :-)
일반적으로, 당신은 비대칭을 피해야합니다. 따라서 원본을 "수행"한 대칭 방법을 사용하여 작업을 "실행 취소"해야합니다. 일반적으로 viewDidUnload
유형의 모든 작업을 didReceiveMemoryWarning
및 dealloc
에 수행 할 수 있어야합니다.
어쨌든이 두 곳에서 대부분의 코드를 복제해야했기 때문에 실제로 변경하지 않아야합니다.
"네비게이션 컨트롤러 스택을 계속 내려가는 것"이 무슨 뜻인지 알지 못하므로 유용한 응답을 제공하는 예제를 명확히해야합니다.
viewDidDisappear
과 viewDidAppear
을 사용할 때의 문제점 중 하나는보기가 실제로 나타나거나 실제로 나타나는 모습이 사라지는 것을 알기가 어려웠 기 때문입니다. .API의
이 조각은 당신이 그 문제를 해결하는 데 도움이 가정된다 : 아이폰 OS 6에서
- (BOOL)isMovingFromParentViewController
- (BOOL)isMovingToParentViewController
- (BOOL)isBeingDismissed
- (BOOL)isBeingPresented
그런 짓을? –