Automatic Reference Counting의 준말로 말 그대로 자동으로 메모리를 관리해주는 기능을 말한다.
스위프트는 프로그램의 메모리 사용을 관리하기 위해서 ARC를 사용하기 때문에 아무래도 프로그래머가 메모리 관리에 신경을 덜 쓸 수 있기에 편리합니다.
class Person {
let name: String
init(name: String) {
self.name = name
print("init - \(name)")
}
deinit {
print("deinit")
}
}
var reference1: Person?
var reference2: Person?
var reference3: Person?
reference1 = Person(name: "철수")
// init - 철수
// 인스턴스 참조 횟수 : 1
reference2 = reference1 // 인스턴스 참조 횟수 : 2
reference3 = reference1 // 인스턴스 참조 횟수 : 3
reference3 = nil // 인스턴스 참조 횟수 : 2
reference2 = nil // 인스턴스 참조 횟수 : 1
reference1 = nil // 인스턴스 참조 횟수 : 0
//deinit
위의 코드로 참조 횟수가 증가하는 시점과 감소하는 시점을 정리해보자.
reference1 = Person(name: "철수")
reference2 = reference1