답변

12

힙 메모리의 경우 사용자가 기본적으로 사용합니다. NSAllocateCollectable 또는 NSReallocateCollectable과 함께 힙 메모리를 할당하거나 NSMakeCollectable과 같은 API를 통해 CoreFoundation 객체를 가비지 수집기로 명시 적으로 넘겨주지 않는 한 GC는 메모리에 대해 전혀 모르고 있으며 관리하지 않습니다. 반대로 GC가 활성화되면 +alloc/-init으로 생성 된 Objective-C 객체는 보완적인 API 호출을 통해 달리 명시하지 않는 한 GC에 의해 관리됩니다.

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/GarbageCollection/

+2

+1 가비지 컬렉션 프로그래밍 가이드는 내가 읽은 가장 흥미로운 기술 글 중 하나입니다. –

+0

NSAllocateCollectable은 제가 찾던 정확한 것입니다, 감사합니다! –

5

당신은 힙 구조를 할당 할 malloc()를 사용하는 경우, I 정말 의심이 (man 페이지는 그것에 대해 아무것도 언급하지 않지만, 애플이 ObjC2 런타임에 대한 malloc를 재 작성하는 것이 가능하다). NSAllocateCollectable()을 사용하는 경우 그렇습니다.

구조가 스택에 만들어진 경우 프레임이 종료 되 자마자 파괴되므로 컬렉션이 필요 없습니다.

+0

+1 스택에 할당 된 구조체에 어떤 일이 일어나는 지 언급하고 있습니다. –

관련 문제