2011-12-26 5 views
6

프로젝트는 ARC (자동 참조 카운터)를 사용하므로, autorelease 문을 구현에 사용했던 4 개의 클래스가있는 ASIHTTPRequest 라이브러리를 가져 오려고하면파일은 ARC 기능을 지원하지 않습니다.

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]]; 

내가 가진 오류 :

ARC forbids explicit message send of autorelease 

내가 어떻게해야이 문제를 해결하기 위해 예입니다.

답변

14

나는 해결책을 가지고있다. 나는 ARC를 지원하지 않는 각 파일의 컴파일러 플래그에 적절한 플래그를 추가해야했다. 나에게 Xcode 4.2를 사용하고 있으므로 target -> Build Phases -> Compile Sources에서 ARC 기능을 사용하지 않으려는 파일을 두 번 클릭하고 -fno-objc-arc을 클릭하면 Done을 클릭하십시오. 그리고 완료되었습니다.)

파일이 목록에 없으면 + 버튼을 클릭하여 추가 한 다음 위와 동일한 작업을 수행 할 수 있습니다.

9

안 ARC에 대한 그 하나 개의 클래스

는 ARC를 사용하는 프로젝트를 마이그레이션

가의 -fobjc 아크 컴파일러 플래그는 모든 목표 - C 소스 파일의 기본값으로 설정되어 있습니다. 해당 클래스에 대해 -fno-objc-arc 컴파일러 플래그를 사용하여 특정 클래스에 대한 ARC를 비활성화 할 수 있습니다.

Xcode의 대상 빌드 단계 탭에서 소스 파일 그룹을 나타내려면 소스 소스 컴파일 그룹을 엽니 다. 플래그를 설정하려는 파일을 두 번 누르고 팝업 패널에 -fno-objc-arc를 입력 한 다음 완료를 누르십시오.

관련 문제