Swift Data Type [Swift] Reference Type

[Swift] Reference Type

Class, Closer 는 Reference Type 으로 분류한다.

Init

메모리의 Stack, Heap 영역에 저장된다.

초기값 미할당

class A {

}
let a: A

Image

  • Heap 영역에 메모리 공간이 생성되지 않는다.

초기값 할당

class A {

}
let a = A()

Image

  • Heap 영역에 메모리 공간이 생성되고 Stack 공간에 Heap 메모리의 주소를 저장하는 공간이 생성된다.

Call By Reference

파라미터로 전달되거나, 리턴 값으로 사용될 때 Heap 공간에 저장된 값 대신 스택 공간에 저장되어 있는 주소가 전달된다.

Reference Type 에 저장된 값은 대부분 두개 이상의 복합 값으로 구성된다.
그래서 값 형식 처럼 복사본이 생성된다면 메모리의 공간 낭비가 심해지고 프로그램 성능이 저하된다. 참조형식은 이런 문제를 해결하기 위해 주소를 전달한다.

deinit

직접 제거하기 전까지 메모리 공간에서 사라지지 않는다.

class A {

}
var a: A? = A()
a = nil

nil 을 할당하여 메모리 제거를 할 수 있다.

ARC 를 프로젝트에서 사용하는 경우
ARC 가 메모리 해제 작업을 자동으로 처리해준다.
ARC 좋구요!

Equal

Heap 공간의 값 비교

a == b

Stack 의 주소 비교

a === b

댓글남기기