Swift Data Type [Swift] Boxing

[Swift] Boxing

value type 을 reference type 으로 변경하는 것을 Boxing,
reference type 을 value type 으로 변경하는 것을 Unboxing 이라 한다.

Boxing

Value Type 의 동일한 값을 Reference Type 으로 Heap 영역에 저장한다. 대표적으로 NSNumber, NSValue 가 있다.

Unboxing

Reference Type 의 Heap 에 저장된 값을 Stack 영역에 저장한다.

성능

과정에서 새로운 메모리 공간이 할당되어야 하기 때문에 불필요한 Boxing, Unboxing 은 피하는 것이 좋다.

주의점

자료형의 불일치로 값의 손실이 발생할 수 있다.

let num = NSNumber(floatLiteral: 123.45)
num.intValue // 소수가 유실 된다.

댓글남기기