ARC가 컴파일 시간이었고 iOS 4와 역 호환 될 것이라고 처음 알게 된 이후로 읽었습니다. 프로젝트를 성공적으로 리팩터링했습니다. Xcode 4.2의 자동 리팩터링을 사용하여 ARC에 추가 할 수 있으며, iOS 5.0 SDK와 비교하여 컴파일하면 정상적으로 작동합니다. 내 아이폰 OS에 대해 컴파일 4.2 SDK를 시도 할 경우, 그것은 다음과 같은 기호 누락 링크시 실패iOS 4에서 ARC가 실제로 지원됩니까? 연결 시간에 iOS 4.2 SDK에 ARC 관련 기호가 누락되었습니다.
- _objc_retainAutoreleaseReturnValue
- _objc_autoreleaseReturnValue을
- _objc_storeStrong
- _objc_retain
- 는
- 을 _objc_release _objc_retainAutoreleasedReturnValue
나는 확인하고, 해당 기호는 5.0에 존재하지만 4.2 :
iPhoneOS5.0.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
00005ed0 T _objc_retain
000061d0 T _objc_retain
iPhoneOS4.2.sdk/usr/lib $ find . -type f|xargs nm|grep -i _objc_retain$
[... *crickets* ...]
이 애플이 거짓말을 의미합니까? 나는 혼란스럽고 잘못된 것을하고 있다고 가정하지만, 나는 무엇을 알아낼 수 없다.
이
는 ARC은 위의 아이폰 OS 4.3에서 지원됩니다 엑스 코드 4.2 (4C199 빌드)
iOS 4.3이 필요하다고 생각합니다. – ughoavgfhw
다른 사람들이 말한 것 외에 4.2 SDK를 설치하지 마십시오. 5.0 SDK를 사용하십시오. 전개 대상을 설정하십시오. 나는 이것을 의미하지 않는다. 나는 일반적으로 의미한다. 오래된 SDK는 사용하지 않아야합니다. –
와우, 새로운 SDK가 구형 OS 버전 용으로 빌드 될 수 있다는 것을 모른 채 오랫동안 갈 수 없었습니다. 여기에 나는 그들이 오래된 나의 모든 SDK 버전을 삭제했다는 것에 화가났다 :/고마워! –