내 iOS 앱은 탐색 기반의 다음과 같은 구조입니다.세트
ViewControllerA
에 보존되는 모든 내용은 ViewControllerA
의 viewDidUnload
에 nil로 설정해야합니다. 하위보기 컨트롤러에도 동일한 작업을 수행해야합니까? 이처럼 : viewControllerC
에서 시작 "을 수상 메모리 경고"있을 때
-(void)viewDidUnload
{
self.viewControllerB=nil;
self.viewControllerC=nil;
}
나는 문제를 발견했다. 그 후 상위 뷰 컨트롤러의 viewDidUnload
(즉, viewControllerA
)이 호출되어 nil이 'viewControllerB'로 설정되었습니다. 예기치 않게 viewControllerB의 viewDidUnload도 호출됩니다. 그래서 viewControllerB
의 서브 뷰 (의 viewDidUnload
)로 nil을 설정하면 "할당 해제 된 객체로 메시지가 전송되었습니다"라는 메시지가 나타납니다.
자식 뷰 컨트롤러에 nil을 설정해서는 안된다는 뜻입니까? 이 상황에서 메모리 관리에 가장 적합한 방법은 무엇입니까?
P. ARC를 사용합니다.