티스토리 뷰
1. ARC (Automatic Reference Counting)
ARC란?
- RC 자동 관리 방식 (WWDC 2011 발표)
- 컴파일러가 개발자를 대신하여 메모리 관리 코드를 적절한 위치에 자동으로 삽입
- GC(Garbage Collection)처럼 런타임이 아닌 컴파일 단에서 처리
- 메모리 관리 이슈를 줄이고 개발자가 코딩 자체에 집중할 수 있도록 함
ARC 특징
- ARC는 클래스의 인스턴스에만 적용 (Class - Reference 타입, Struct / Enum - Value 타입)
- 활성화된 참조 카운트가 하나라도 있을 경우 메모리에서 해제 되지 않음
참조 타입
- 강한 참조 (Strong) : 기본값. 참조될 때마다 참조 카운트 1 증가
- 약한 참조 (Weak), 미소유 참조(Unowned) : 참조 카운트를 증가시키지 않음
- 강한 순환 참조 (Strong Reference Cycles)에 대한 주의 필요
2. 강한 순환 참조 (Strong Reference Cycle)
강한 순환 참조
- 객체에 접근 가능한 모든 연결을 끊었음에도 순환 참조로 인해 활성화된 참조 카운트가 남아 있어 메모리 누수가 발생하는 현상
- 앱의 실행이 느려지거나 오동작 또는 오류를 발생시키는 원인이 됨
1. 객체1을 생성 후, 객체 2를 참조
2. 객체2는 객체 3을 참조
3. 객체3은 객체 2를 참조 ( 객체 2와 객체 3은 서로를 참조)
4. 객체1를 삭제
5. 객체2와 객체 3을 참조할 수 있는 객체 1이 사라졌음에도 불구하고 메모리에 남아 있음
'개발 > iOS' 카테고리의 다른 글
[Swift] iOS 파이어베이스에 연동하기 (421) | 2019.06.08 |
---|---|
[Xcode] CocoaPods(코코아팟) 설치 및 사용 방법 (0) | 2019.06.03 |
[Swift] 여러 이미지를 이용해 Custom Loading 화면 만들기 (7) | 2019.06.02 |
[Swift] Custom TableView Code로 작성하기 (1) | 2019.06.01 |
[Swift] 변수, 상수, 자료형 (415) | 2019.06.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오 로그인
- Swift GoogleMap
- firebase
- Sign in with Apple
- ios
- Android
- SWIFT
- Kakao
- presentingViewController
- ModalPresentaionStyle
- swift 문자열
- 문자열나누기
- Xcode
- Swift Target Version
- iOS13
- xcode11
- GIF
- ActivityViewController
- signinwithapple
- TableView
- 애플로그인
- 공유하기 한국어
- 앱커넥트
- 키크론K2
- 안드로이드
- error
- UITextField 멀티라인
- TextField Padding
- swift fcm
- 앱스토어 커넥트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함