내비게이션 기반 앱이 있습니다. 화면 목록에는 도서 목록이있는 UITableView
이 있습니다. 책 목록은 HTTP 요청을 실행하여 동적으로 작성된 특성 인 NSArray
에 있습니다. 리스트에있는 행 중 하나를 클릭하면 세부 사항 화면으로 이동합니다. 이 시점에서 메모리 경고가 있다고 가정 해 봅시다. 화면 으로 돌아 오면 viewDidUnload
이 호출 되었기 때문에 NSArray
이 없으므로 목록은 비어 있습니다.iOS 메모리 관리 - viewDidUnload
이 상황을 처리하는 올바른 방법은 무엇입니까? viewDidUnload
에 NSArray
을 설정하지 않아야합니까?
그래서 짧은 대답은 내가 바로, 전무로있는 NSArray를 설정하지해야한다는 것입니다? 이것은 응용 프로그램이 완료 될 때만 NSArray가 릴리스된다는 것을 의미합니까? – Adriana
첫 번째 질문을 수정하십시오. 배열은 뷰 컨트롤러가 파괴 될 때 해제 될 것입니다 (여러분이'-dealloc'에서 그것을 풀 었다고 가정 할 때). 뷰 컨트롤러가 탐색 컨트롤러의 스택에 항상 있으면 배열은 앱이 끝날 때까지 존속합니다. –
내 UIViewController 하위 클래스의'- (void) dealloc' 메서드에서'[super dealloc]'을 호출하므로 뷰 컨트롤러가 삭제됩니다. 마지막 질문 : 내 모델에'- (void) dealloc' 메서드를 정의해서는 안됩니다. 맞습니까? 그렇지 않으면 메모리 경고가있는 경우에 데이터가 손실 될 것입니다. 명확한 설명을 해주셔서 감사합니다 :) – Adriana