ARC (Automatic Reference Counting) 관련 키워드 사용법

The LLVM Compiler 3.0 에서 ARC기능이 생기면서 4개의 ownership 지시자가 추가되었다[^1]. __strong __unsafe_unretained __weak __autoreleasing 동일한 키워드라도 다음과같이 변수 선언시에는 롱 언더바(__)를 붙여줘야 하고, @property선언시에는 언더바 없이 키워드만 넣어주면 된다. @interface TreeAdditionObj : NSObject { NSString* __unsafe_unretained nodeID; } @property (unsafe_unretained) NSString* nodeID; @end strong 참조 ARC를 사용할 때 모든 포인터를 strong으로 사용하면(strong 참조가 지정된 포인터 변수에 새로운 객체를 대입하면 해당 객체는 무조건 retain된다는 의미), 두 객체가 서로 참조하게되는 순환 참조(circular reference) 상황에서 메모리 해제가 불가능해진다. 일반적으로 Cocoa나 CocoaTouch개발 프레임웍상에서 객체에 delegate를 사용할 때 이러한 순환 참조 상황이 많이 발생하기 때문에, delegate들에 대해서는 주의해서 weak 또는 unsafe_unretained를 사용해야 한다. ...

2013년 7월 25일 · 2분 · 281단어