본문 바로가기

프로그래밍/iOS

Responding to Memory Warnings

시스템에서 요청하면 메모리를 확보하시오.


Overview

시스템의 여유 메모리가 부족하고 일시 중단 된 앱을 종료하여 메모리를 회수 할 수 없는 경우 UIKit은 실행중인 앱에 메모리 부족 경고를 보낸다.

 

UIKit은 다음과 같은 방법으로 메모리 부족 경고를 제공한다.

 

  • 앱 대리자의 applicationDidReceiveMemoryWarning(_:) 메서드를 호출한다.
  • 활성 UIViewController 클래스의 didReceiveMemoryWarning() 메서드를 호출한다.
  • 등록 된 관찰자에게 didReceiveMemoryWarningNotification 오브젝트를 게시한다.
  • DISPATCH_SOURCE_TYPE_MEMORYPRESSURE 유형의 큐를 dispatch 하도록 경고를 전달한다.

 

앱에 메모리 부족 경고가 표시되면 최대한 빨리 메모리를 최대한 확보하시오. 이미 디스크에 표시되어 있고 나중에 다시 로드 할 수 있는 이미지, 미디어 파일 또는 대용량 데이터 파일에 대한 참조를 제거한다. 더 이상 필요하지 않은 임시 개체에 대한 참조를 제거한다. 활성 작업이 상당한 양의 메모리를 사용할 수 있는 경우 dispatch queue를 일시 중지하거나 앱에서 수행하는 동시 작업 수를 제한한다.

 

중요
앱의 메모리 사용량을 줄이지 않으면 앱이 종료 될 수 있다. 따라서 정리 작업의 일부로 저장되지 않은 데이터를 디스크에 쓰는 것을 고려하시오.

 

메모리 부족 경고에 대한 앱의 응답을 테스트하려면 iOS 시뮬레이터에서 Simulate Memory Warning command을 사용하시오.

 

[원문]

 

Apple Developer Documentation

 

developer.apple.com

 

'프로그래밍 > iOS' 카테고리의 다른 글

UITableView  (0) 2021.01.05
MVVM(Model-View-ViewModel) 패턴  (0) 2021.01.01
Performing One-Time Setup for Your App  (0) 2020.12.31
Responding to the Launch of Your App  (0) 2020.12.31
Background Tasks  (0) 2020.12.31