2011.07.18 10:28

Objective-C의 메모리 관리

어짜피 C다.
그래서 직접 메모리를 접근하는데,
문제가 있을 거라서 Heap을 관리하는 것으로 NSAutoreleasePool이란 걸 쓴다.
여기서 메모리 관리를 하고 종료할 때 한꺼번에 해제해주고.

이 NSAutoreleasePool은 결국 NSObject를 상속받은 클래스에만 관리를 한다.
즉 [alloc] [release] 등을 해줄 수 있는 것들.
그 왜 일반적으로 메모리를 잡을 수 있는 배열 등은 malloc 해줬으면 알아서 delete를 해줄것! (기본 c 개발 상식)

그럼 뭐하러 alloc하고 retain하고 release를 해줄까?
reference counting을 하는건데...
궁극적으로는 메모리를 적게 먹는 앱을 개발한다면 그닥 신경 안써도 될 듯?
앱 종료시에 메모리 해제가 다 되니까...
다만 메모리를 많이 먹는 앱이면 내부 Heap 관리를 해야 하므로,
release를 해서 ref count를 0으로 만들어야 나중에 메모리를 써야 할 때 기존에 사용했던 메모리 영역을
다시 할당해줄 수가 있다.

그니까 알아서 잘 관리하자.

요점... alloc이나 retain을 해줬으면 나중에 필요없을 때는 필히 release 하기! 
저작자 표시 비영리 변경 금지
신고

'아빠 일기 > iPhone' 카테고리의 다른 글

Ogre 3D SDK for MAC 설치  (0) 2011.07.20
Objective-C의 메모리 관리  (0) 2011.07.18
iPhone용 Open 3D Engine  (0) 2011.07.18
Trackback 0 Comment 0


티스토리 툴바