개발도구/iOS - 아이폰 개발
[아이폰-펌] retain, release, autorelease, dealloc 에러 / ARC (Automatic Reference Counting)
Hay's App
2012. 5. 31. 10:37
펌 : http://blog.appgate.in/18
iOS5의 ARC(Automatic Reference Counting)은 Objective-C 객체의 메모리 관리를 자동으로 관리하는 "Compiler" 속성이다. 이 속성을 사용하면 예전에 쓰던 retain, release, autorelease, dealloc 코드는 사용할 수 없게되며 이들이 하던 역할을 컴파일 시점에 알아서 처리해준다. ARC가 허용하지 않는 코드를 사용하면 아래와 같은 에러를 뿜어낸다.
그럼, ARC을 사용하게 되면 기존 오픈소스를 사용하는데 문제가 되지 않을까 걱정을 할 수 있는데 다음과 같이 해결하면 된다.
- 이미 컴파일된 오픈소스 라이브러리 사용
- ARC옵션을 끈 다른 라이브러리 프로젝트를 생성해서 사용
- 오픈소스 파일별로 ARC옵션을 끄고 사용
프로젝트 Build Settings에서 Objective-C Automatic Reference Counting을 NO로 바꾸거나
프로젝트 Build Phases에서 옵션을 끌 파일들을 선택한 후 엔터를 치고 "-fno-objc-arc" 옵션을 적용해주면 된다.