Development/Tips

[옛 글] [Tip] alloc(new), copy, retain

마즈다 2013. 7. 15. 07:35
반응형

최초 작성일 : 2010/04/11 10:34 


alloc (new)

생성할 객체를 로드하기 위한 메모리 영역을 확보하고 retain count를 1로 만든 후 객체를 반환한다.

생성된 객체에 대해 소유(사용)자가 된다.


copy

객체를 복제하여 retain count를 1로 만든 후 객체를 반환한다.
값의 복사는 아니며, copy를 한 경우에는 복제된 객체에만 소유(사용)자가 된다.


retain

기존에 다른 곳에서 참조되고 있는 객체에 대해 retain count를 1 증가시키면서

객체에 대한 소유(사용)권을 얻어온다.


***

소유권에 대한 문제 :

위 내용에 보면 '소유권'에 대한 언급이 있는데 이 소유권이란 어떤 객체의 소유자가

그 객체의 인스턴스에 대해 메모리 해제의 책임을 진다는 의미로 일종의 개발 관행이다.

alloc(new), copy, retain 등으로 객체의 인스턴스를 생성하거나 참조 카운트를

올리는 것이 바로 그렇게 생성된 인스턴스의 소유자가 되는 것이다.

반응형