Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- dateFormatter
- Raw value and Associated value
- CoreData Filter
- iOS Static Library
- Swift LinkedList
- expensive operation
- 2022 부스트캠프
- iOS Static Library 사용하는방법
- CoreData Stack
- NSManagedObject SubClass
- CoreData Concurrency
- NSSortDescriptor
- leetcode #01
- Java
- Swift
- 스위프트 클로저
- 1009번
- Clean swift
- CoreData
- 트레일링 클로저
- Persistent store Coordinator
- 일급 객체
- codability
- Swift 고차함수
- Swift closure
- LightWeight Migration
- persistentStoreCoordinator
- NSPredicates
- 다익스트라 이해
- Associated Value
Archives
- Today
- Total
하루를살자
ARC (Automatic Reference Counter) 본문
ARC
- ARC는 메모리 영역 중 힙 영역을 관리한다 .
- 힙 메모리 영역은 인스턴스, 클로저 등 참조타입(reference type) 등이 자동으로 등록 된다. (왜 클로저가 reference Type 인지는 다음 포스트에서 알아보겠다.)
class Person {
let name: String
}
//1
let person1 = Person(name: "Kai")
//2
let person2 = person1
1.0 힙 영역에 Person 인스턴스 메모리 할당, person1 은 stack 영역에서 person Instance 의 메모리 주소를 pointing 하고 있다.
2.0 person2 라는 변수가 stackMemory 에 새로 할당되는데, 똑같은 Heap Memory 의 Person Instance 를 pointing 하게 된다.
person1 = nil
person2 = nil
stackMemory 에 할당되어 있던 변수들을 nil 로 만들어 버리면 더이상 heap 영역의 person Instance 를 사용하는 변수가 없게 된다.
이때 Swift 의 ARC 는 이름 그대로 자동으로 reference 가 참조 되는 횟수를 counting 하고 있다가
0 이 되면 자동으로 메모리 에서 해제 시켜준다.
'Swift' 카테고리의 다른 글
[Swift] 강한 순환 참조 (0) | 2022.08.06 |
---|---|
[Swift] Closure 의 Capture, CaptureList (0) | 2022.08.06 |
[Swift] LinkedList (0) | 2022.08.05 |
[Swift] Expansive DateFormatter : 어떻게 사용해야할까? (0) | 2022.06.09 |
Swift - Closure (2) : Trailing Closure (0) | 2022.02.27 |
Comments