18

이것을 정리하려고합니다. ARC를 사용하지 않는 파일이나 정적 라이브러리를 사용하여 ARC 프로젝트를 수행하는 방법을 알고 있습니다. 예를 들어, 컴파일러 플래그 -fno-objc-arc을 사용합니다.NON-ARC 프로젝트에서 ARC 정적 라이브러리 사용

하지만 ARC를 사용하지 않고 ARC로 컴파일 된 정적 라이브러리를 포함하려는 프로젝트가 있다면 어떻게해야합니까? 프로젝트를 만들 때마다 "강하고 __unsafe_unretained ..."와 같은 것을 인식하지 못한다고 나에게 말하고있다.

+0

그냥 궁금해서, 왜 당신은 당신의 프로젝트에 ARC를 켜고 모든 파일에 컴파일러 플래그를 추가 할 수 없습니다? ARC를 비활성화해야하는 특별한 이유가 있습니까? –

+0

프로젝트는 얼마 전에 제작되었으며 다른 많은 타사 비 아크 프레임 워크를 사용합니다. 따라서 모든 파일을 검토하고 컴파일러 플래그를 설정하는 것은 지루한 과정입니다. 나는 더 나은/청결한 해결책을 찾고 있었다. 따라서 300 개가 넘는 소스 파일에서 컴파일러 플래그를 채울 필요가 없습니다. :) – Yannick

+0

ARC 마이그레이션 도구를 사용하면 기본적으로 모든 파일을 선택하여 플래그를 추가 할 수 있습니다. 적어도 Xcode 4.2에서는 모든 파일을 수동으로 수행 할 필요가 없습니다. –

답변

8

정상적으로 작동합니다. GCC가 아닌 ARC 프로젝트가 아닌 최신 Apple 컴파일러를 사용하고 계십니까?

+1

글쎄, 만약 내가 그 모든 프로젝트를 유지하고/릴리스 호출을 제거하고 기본적으로 ARC 모든 것을 시작해야 할 것이라고. 그리고 오래된 코드와 구조가 있기 때문에 그렇게하고 싶지 않습니다. – Yannick

+1

아닙니다. ARC는 추가 컴파일러 기능이므로 원하지 않는 경우에는 사용하지 않아도됩니다. 최신 Apple LLVM을 사용한다고해서 ARC를 사용해야한다는 의미는 아닙니다. 귀하가 선택한 것이기 때문에 (심지어 새 프로젝트를 만들 때 ARC 사용 여부를 결정할 수도 있습니다). 그것을 사용하면 이전 코드를 ARC로 변환해야한다는 것을 의미하지 않습니다. 차이점은 새로운 키워드 등을 모두 이해한다는 것입니다. – shw

+1

Joe you 're right. 나는 ARC'ing을 시작해야만한다고 생각했지만, 그는 놓친 끔찍한 캐스트 몇 개와 다른 몇 가지 오류에 대해서 불평했다. 감사! – Yannick

16

shw의 답변에 추가하십시오. 빌드 단계의 컴파일러 플래그에 -fobjc-arc를 추가하여 ARC가 아닌 프로젝트에서 올바르게 컴파일되도록합니다.

더 많은 정보 here

+0

간단히 ... –

관련 문제