2014-07-15 4 views
0

ARC를 사용하여 개발 한 정적 라이브러리가 있고 이진 파일로 컴파일 된 다음이 라이브러리를 사용하는 다른 사람의 제한 사항이 궁금합니다. 구체적으로 실행할 수있는 최소 iOS는 무엇입니까?ARC 정적 라이브러리 호환성

답변

1

ARC는 컴파일러 기술입니다.

언제든지 weak 참조를 사용한 경우 iOS 5.0에서만 추가 된 런타임 부분을 사용하게됩니다. 그래서 일차 답은 "5.0"입니다.

사용자가 MAZeroingWeakRef과 같은 링크를 사용하려는 경우 런타임에 취약성을 지원하는 데 필요한 부분을 추가하지만 아직 존재하지 않는 경우에만 호환성을 iOS 2.0으로 되돌릴 수 있습니다.

+0

약한 참조를 사용하지 않는다면 괜찮을 것이고 약한 참조를 사용한다면 어떻게됩니까? 그들이 출시 될 때 자동으로 채워지지 않을 것인가? – strikerdude10

+0

@ strikerdude10 아니요, 만약 당신이'약한 '참조를 사용하고 있고 누군가가'MAZeroingWeakRef' 또는 동등한 솔루션을 포함하지 않고 여러분의 라이브러리를 iOS 4.0에 포함한다면 여러분의 어플리케이션은 시작되지 않을 것입니다. 컴파일러는 동적 링커가 모든 함수의로드가 끝나면 C 함수에 대한 호출을 삽입하여 프로그램에 실행을 전달하지 않고 예외를 발생시킬 것입니다. 'weak' 대신'unsafe_unretained'를 사용하십시오. 문제가 있거나 비 weak 참조를 처리 할 수 ​​있다면. – Tommy

관련 문제