비디오: 아이폰 X 느려지면 메모리 정리 해서 빠르게 만드는 방법 2024
iOS 용 메모리를 관리하는 가장 쉬운 방법 Objective-C 런타임에서 자동 참조 계산 (ARC)이라는 시스템을 사용하여 처리하도록하는 것입니다. 사용하십시오. (ARC는 2011 년부터 Xcode 4.2 이상에서 사용 가능합니다.)
iOS가 처음 소개되었을 때 프로그램의 객체 수명주기를 추적하여 수동으로 메모리를 관리해야했습니다. Object <-c> 런타임 시스템에 객체를 유지할 시점과 해제 시점을 알려주고 Apple이 retain-release, 라는 참조 체계를 사용하여 참조 계산이라는 기술을 사용했습니다.
보유-
릴리스
-
자동 릴리스
-
참조 카운터
를 조작합니다. 목적. 이 참조 카운트가 iOS에 의해 관리되는 방법은 다음과 같습니다. 대상 객체에서 retain이 호출 될 때마다 참조 횟수가 1 씩 증가합니다.
-
5 개의 객체가 대상 객체에 대해 retain을 호출하면 참조 수는 5가됩니다 (단, 객체가 할당되면 init이 자동으로 참조 횟수를 증가시킵니다).
대상 개체가 필요하지 않게됨에 따라 다섯 개의 개체가 개체에서 해제를 호출합니다. 릴리스가 호출 될 때마다 대상 객체의 참조 횟수가 감소합니다 (1 씩).참조 카운트가 0이 될 때 (즉, 마지막 객체가 release를 호출 할 때), 객체의 메모리는 시스템에 의해 해제된다.
-
세 번째 방법 인 autorelease는 생성 한 객체를 스레드로 넘겨주고 스레드가 완료 될 때 스레드가 객체를 해제 할 때 수행해야 할 때 호출됩니다.
-
내부적으로 ARC 시스템은 수동 참조 카운팅에 사용 된 것과 동일한 참조 카운팅 시스템을 사용합니다. 그러나 ARC를 사용하려면 다음과 같이 @autoreleasepool 블록에 코드를 넣으십시오.
@autoreleasepool {… Your code …}
컴파일러
는 적절한 메모리 관리 메소드 호출을 코드에 삽입하므로 이 @autoreleasepool 블록 내에서 생성 된 모든 것은 프로그램이 블록을 종료 할 때 해제됩니다.