[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 // 소수가 유실 된다.
댓글남기기