iPad 용 대화 형 책을 만들고 UINavigationController
을 사용하여 페이지와 다음 페이지 사이의 탐색을 구현하고 있습니다. 사용자가 페이지를 넘길 때 다음 페이지가 탐색 스택 맨 위에 푸시됩니다.UINavigationController에서 많은보기 컨트롤러를 푸시 할 때 메모리 문제가 발생했습니다.
14 페이지에서 15 페이지로 이동할 때 앱이 15 페이지가됩니다. 콘솔에서 오류 메시지가 표시되지 않고 기기의 오류 로그에는 아무 것도 표시되지 않습니다.
스토리 보드의 각보기 컨트롤러의 장면에는 이미지가 5MB에서 20MB 사이 인 UIImageViews
이 표시됩니다. 뷰 컨트롤러의 viewDidLoad
메서드는 한 번만 호출됩니다. 모든 앱의 전체 자산 크기는 200B 미만입니다. ARC를 사용하고 있습니다.
저는 Instruments의 Memory Monitor를 사용하여 앱을 실행했습니다. 앱의 실제 메모리 사용량은 새 페이지가 바뀔 때마다 약 80MB 증가하고 800MB에 도달하면 충돌합니다 (기기가 iPad 3 임).
왜 엄청난 메모리가 소비 되었습니까? Storyboard의 장면에있는 UIImageView가 이미지를 캐시하기 때문에 이것이 발생 했습니까?
UINavigationController
과 ARC를 사용할 때 메모리를 확보하는 가장 좋은 방법은 무엇입니까?
viewDidDisappear:
방법 닐 모든 뷰 컨트롤러의 파단 부가 설정했지만, 메모리 소모가 동일한 머물렀다.
나에게 UIPageViewController와 비슷한 소리가납니다. – LightningStryk