2012-10-06 5 views
0

정적 프레임 워크를 만들고 여러 응용 프로그램에서 사용할 것입니다. 프레임 워크 코드에서 ARC 플래그를 비활성화하고 NO로 설정합니다.프레임 워크 iOS ARC

프레임 워크를 사용할 다른 프로젝트의 경우 ARC를 YES 또는 NO로 설정할 수 있습니다. 따라서 프레임 워크의 ARC 플래그와 프레임 워크가 사용되는 프로젝트의 ARC 플래그가 일치하지 않으면 이미 할당이 해제 된 항목의 할당을 해제하려고하기 때문에 응용 프로그램이 충돌합니다.

위의 문제에 대한 해결책이 있습니까? 이 당 응용 프로그램이 아닙니다 당 파일 그래서

감사합니다,

Nirav

답변

3

ARC는 컴파일시 설정입니다. ARC를 사용하는 경우 각 파일의 코드가 컴파일러와 일치하는지 확인해야합니다. 반대를 검출하는

#if !__has_feature(objc_arc) 
    #error This file should be compiled with ARC enabled 
#endif 

유사 : 당신이해야 할 때 파일이 ARC를 사용하지 않을 경우 오류가 발생 할 경우, 같은 것을 사용합니다.

+1

나는 뭔가 다른 때마다 checkARCMacro를 할 수 있다고 덧붙이고 싶습니다. 예 : #ifndef __has_feature // (objc_arc) _text = [initText retain]; #else _text = initText; #endif - ARC를 사용하지 않는 사용자를 위해 프레임 워크를 작성할 수 있습니다. – Martol1ni