Responding to Memory Warnings

Panther·2021년 8월 13일
0

https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle/responding_to_memory_warnings

"Free up memory when asked to do so by the system."

시스템에 의해 메모리 공간을 비우도록 요청받은 경우 메모리 공간을 비웁니다.

Overview

메모리에 여유가 없는 상황에서 시스템이 작동하고 있고, 중지된 앱을 종료시킴으로써 메모리를 확보할 수 없는 경우 UIKit은 실행되고 있는 앱에 로우 메모리 경고를 보냅니다. UIKit는 아래와 같은 방법으로 로우 메모리 경고를 전달합니다.

  • 앱 딜리게이트의 applicationDidReceiveMemoryWarning(_:) 메소드를 호출합니다.
  • 모든 활성화된 UIViewController 클래스의 didReceiveMemoryWarning() 메소드를 호출합니다.
  • 모든 등록된 옵저버에게 didReceiveMemoryWarningNotification 객체를 포스트합니다.
  • DISPATCH_SOURCE_TYPE_MEMORYPRESSURE 타입의 디스패치 큐에 경고를 전달합니다.

앱이 로우 메모리 경고를 받는 경우 가능한 많이, 그리고 빠르게 메모리 공간을 확보합니다. 이미 디스크에 나타나거나 이후에 다시 로드될 수 있는 이미지, 미디어 파일, 혹은 기타 큰 데이터 파일에 대한 레퍼런스를 제거합니다. 더 이상 필요하지 않은 일시적인 객체에 대한 레퍼런스도 제거합니다. 활성화된 일시적인 작업이 메모리의 많은 양을 소비하고 있다면, 디스패치 큐를 일시중지하거나 앱이 수행하고 있는 동시 작업의 수를 제한합니다.

Important
앱의 메모리 사용 감소에 대한 실패는 앱을 종료시킬 것입니다. 그러므로 정리 작업의 목적으로써 저장되지 않은 모든 데이터를 디스크에 쓰는 것에 대해 생각해보시기 바랍니다.

0개의 댓글