2011-10-14 1 views
15

프로젝트를 iOS 5로 변환하고 ARC를 활성화했습니다. 이제 코어 플롯을 프로젝트와 통합해야합니다. 나는 핵심 플롯에 포함 된 샘플 컨트롤러를 인스턴스화 할 때 다음과 같이 나는 약 20 오류를 얻을 :iPhone 4 iOS5 코어 플롯 및 ARC 오류 : "현재 배포 대상이 약한 참조를 지원하지 않습니다."

The current deployment target does not support automated __weak references

내가 명시 적으로 빌드 설정에서 컨트롤러의 이름 fno-objc-arc 다음 말했다했습니다.

ARC가 활성화 된 상태에서 코어 플롯을 실행하려면 무엇이 더 필요합니까?

감사합니다.

답변

42

__weak 언급은 위의 아이폰 OS 5에서 작동합니다.배포 대상이 이전에 설정된 경우 오류가 발생합니다. 기본적으로 이전 장치에 배포하려는 경우 자동 __weak 참조를 사용할 수 없습니다. Inspire48의 대답은 광범위하게 __weak 참조 5.0 이전의 iOS 버전에서 지원되지 않는 사실을 커버하면서 대체가 __unsafe_unretained

+0

배포 대상을 5.0으로 변경해 주셔서 감사합니다! –

+0

배포 대상을 4.2로 유지해야합니다. 어쨌든 주위를 둘러 볼 수 있습니까? – Pavan

+2

__weak 대신 __unsafe_unretained를 사용하십시오. 이 경우 약간의 ARC 기능이 느슨해집니다. – FeifanZ

6

것,이 특별한 문제는 완전히 ARC 호환이 이루어지고 있지 핵심 플롯의 헤더 때문.

몇 달 전에 Mercurial 저장소에서 수정되었으므로 ARC 지원 프로젝트에서 Core Plot을 사용하려면 저장소에서 최신 코드를 가져와야합니다. 0.9 스냅 샷은 헤더에서 이와 같은 항목 때문에 ARC와 잘 상호 작용하지 않습니다.

저장소의 코어 플롯 프레임 워크 코드는 응용 프로그램에서 ARC가 활성화 된 iOS 4.0 및 Snow Leopard에 대한 타겟팅도 지원합니다. (3.0 및 ARC없는 레오파드도 마찬가지이기 때문에) 5.0을 대상으로하지 않아도됩니다. Core Plot과 함께 ARC를 사용합니다.

0

개발 변경 Targert 6.0.

프로젝트 선택> target> 개발 대상> 6.0으로 변경

관련 문제