"Free up memory when asked to do so by the system."
시스템에 의해 메모리 공간을 비우도록 요청받은 경우 메모리 공간을 비웁니다.
메모리에 여유가 없는 상황에서 시스템이 작동하고 있고, 중지된 앱을 종료시킴으로써 메모리를 확보할 수 없는 경우 UIKit
은 실행되고 있는 앱에 로우 메모리 경고를 보냅니다. UIKit
는 아래와 같은 방법으로 로우 메모리 경고를 전달합니다.
applicationDidReceiveMemoryWarning(_:)
메소드를 호출합니다.UIViewController
클래스의 didReceiveMemoryWarning()
메소드를 호출합니다.didReceiveMemoryWarningNotification
객체를 포스트합니다.DISPATCH_SOURCE_TYPE_MEMORYPRESSURE
타입의 디스패치 큐에 경고를 전달합니다.앱이 로우 메모리 경고를 받는 경우 가능한 많이, 그리고 빠르게 메모리 공간을 확보합니다. 이미 디스크에 나타나거나 이후에 다시 로드될 수 있는 이미지, 미디어 파일, 혹은 기타 큰 데이터 파일에 대한 레퍼런스를 제거합니다. 더 이상 필요하지 않은 일시적인 객체에 대한 레퍼런스도 제거합니다. 활성화된 일시적인 작업이 메모리의 많은 양을 소비하고 있다면, 디스패치 큐를 일시중지하거나 앱이 수행하고 있는 동시 작업의 수를 제한합니다.
Important
앱의 메모리 사용 감소에 대한 실패는 앱을 종료시킬 것입니다. 그러므로 정리 작업의 목적으로써 저장되지 않은 모든 데이터를 디스크에 쓰는 것에 대해 생각해보시기 바랍니다.