[objective-c] 일부 파일에 대한 자동 참조 계산 비활성화

iOS 5 SDK를 다운로드했으며 ARC가 새로운 Apple 컴파일러의 훌륭한 기능이라는 것을 알았습니다. 당분간 많은 타사 프레임 워크는 ARC를 지원하지 않습니다. 새 코드에 ARC를 사용하고 현재 보유 / 릴리스 코드를 변경하지 않고 유지할 수 있습니까? JSONKit과 같은 일부 프레임 워크는 변환기를 사용하여 ARC로 변환 할 수 없으므로 ARC 변환기는 여기서 작동하지 않습니다.

편집하다:

대답은 -fno-objc-arcARC를 원하지 않는 파일에 대한 컴파일러 플래그에 추가 하는 것입니다. Xcode 4에서는 대상-> 빌드 단계-> 컴파일 소스 에서이 작업을 수행 할 수 있습니다.



답변

공개 ARC 문서 는이 시점에서 직접 명확하지는 않지만 각 클래스가 모두 ARC이거나 수동으로 관리되는 한 클래스를 단일 프로그램으로 통합 할 수 있다고 제안하는 것 같습니다.

단일 클래스에서는 ARC와 비 ARC 만 혼합 할 수 없습니다. 문서를 말한다 전송 retain, release, autorelease, 또는 retainCount(타이머 사용 지연 수행을 포함하여 어떤 방법으로 메시지 @selectorARC 코드 금지). 따라서 ARC 클래스에서는 ARC 이외의 작업을 수행 할 수 없으며 (필요한 메시지가 금지되기 때문에) ARC 이외의 클래스에서는 ARC를 수행 할 수 없습니다 (ARC가 ARC없이 유효하지 않은 구문 요소를 추가하기 때문에).

ARC 이외의 라이브러리 / 프레임 워크를 ARC 프로그램에 통합 할 수 있는지 여부에 대해 동일한 문서가 약간 더 명확합니다. 예. 모든 코드가 ARC가 아닌 프로그램에서 ARC 라이브러리 / 프레임 워크를 사용할 수 있는지 여부는 언급하지 않지만 위의 모든 사항을 고려하면 의미가 예인 것 같습니다.


답변

MULTIPLE 파일에서 ARC를 비활성화하는 방법은 매우 직관적이지 않습니다 . 잠깐 동안 나는 그것을 수행하는 방법을 알아낼 때까지 하나씩 수행했습니다.

  1. Xcode의 Target / Build Phases / Compile Sources에서 원하는 파일을 선택하십시오 (CMD + 클릭 또는 Shift + 클릭)
  2. ENTER를 누르 십시오 (두 번 클릭하면 선택 항목이 재설정되므로 작동하지 않습니다)
  3. -fno-objc-arc 유형
  4. Enter 또는 완료를 누르십시오

답변

일부 파일에 대해 자동 참조 계산을 사용하지 않으려면 단계를 수행하는 것이 정말 간단합니다. 대상-> 빌드 단계-> 컴파일 소스에 컴파일러 플래그를 추가하십시오.

xcode

사용 된 플래그는 -fno-objc-arc 입니다. 기록한 후 Enter를 누르십시오.! 컴파일러 플래그 아래 행의 오른쪽 열을 두 번 클릭해야합니다. 그것이 도움이되기를 바랍니다 🙂


답변

해당 파일에 대해 -fno-objc-arc 컴파일러 플래그를 추가하여 개별 파일에 대해 ARC를 비활성화 할 수 있습니다.

프로젝트에서 단일 파일에 대해 ARC를 비활성화하려면 어떻게해야합니까?


답변