Deep Copy
copy나 mutableCopy를 사용하면 객체의 사본을 만들 수 있다. 이는 같은 데이터를 가리키지 않고 별도의 할당된 메모리에 데이터를 복사하여 또 하나의 할당된 객체를 만들어주는 메소드이다. 통상 NSCopying 프로토콜을 따르면 복사가 가능하고, 그 중 변경이 가능한 mutable한 객체들은 mutableCopy를 제공한다. 문제는 어떤 객체가 다른 객체를 가리키고 있는 경우에는 포인터만 복사된다는 것이다. 예를 들어서 NSArray나 NSDictionary의 경우, 배열이나 사전 객체를 복사하면 하나의 사전, 배열이 추가로 생성되는 것은 맞다. 하지만 배열의 모든 원소는 원본 배열의 원소와 같은 포인터가 복사되는 것으로, 배열 그 자체는 사본이지만,… 더 보기 »Deep Copy