제목이 내 질문을 잘 설명한다고 생각합니다. 현재 개인적인 필요에 맞는 작은 프레임 워크를 만들고 ARC로 빌드하는 방법에 대해 생각해 보았습니다. (가능하면 가능합니까?) 오래된 프로젝트에서 사용했습니다. ARC 전에 지어 졌나요?ARC 프레임 워크를 빌드하고 비 ARC 프로젝트에서 사용할 수 있습니까?
답변
예, 하나의주의 사항 : iOS 4.x를 배포 대상으로 사용하는 경우 이전 런타임에서 ARC로 컴파일 된 코드를 처리하려면 추가 라이브러리가 필요합니다. ARC를 사용하여 구축 된 응용 프로그램의 경우 응용 프로그램과 함께 패키지로 제공됩니다. 이것은 ARC가 아닌 응용 프로그램에서 ARC로 컴파일 된 라이브러리를 사용하는 경우에는 포함되지 않습니다.
응용 프로그램의 기타 링커 플래그에 -fobjc-arc
을 추가하여 이전 OS 버전의 런타임 문제를 피하기 위해이 라이브러리를 비 ARC 응용 프로그램에 수동으로 연결할 수 있습니다.
자세한 내용은 this Apple Developer Forums thread을 참조하십시오.
괜찮을 것입니다. 라이브러리가 이미 컴파일되었으므로 ARC/NonARC는 더 이상 중요하지 않습니다.
이전 대답과 ARC 사용 정적 라이브러리에 잠재적 인 문제점이 하나 있습니다. –
Apple에서 제공하는 접착제 라이브러리를 연결할 수 있습니다 (Brad는 위의 답변에서 말한 것처럼). 그러나 __weak 변수 한정자는 4.3 이하의 운영 체제와 호환되지 않습니다 (여기에서 언급 한대로 : sudo의 설명에서 iOS 5 Best Practice (Release/retain?)).
- 1. ARC 빌드 응용 프로그램에서 비 ARC 빌드 프레임 워크를 사용할 수 있습니까?
- 2. 비 ARC 호환 프로젝트에서 ARC 호환 파일을 사용하는 방법
- 3. 비 ARC 및 ARC 프로젝트 코드를 결합 할 수 있습니까?
- 4. 프레임 워크 iOS ARC
- 5. NON-ARC 프로젝트에서 ARC 정적 라이브러리 사용
- 6. 비 ARC 코드에서 ARC 메소드 호출
- 7. ARC 앱에 비 ARC 라이브러리 포함?
- 8. ARC 프로젝트에서 TWRequest 누수가
- 9. ARC, non-ARC 및 상속
- 10. 비 ARC 프로젝트를 ARC로 전환
- 11. ARC
- 12. ARC
- 13. ARC 프로젝트에서 클래스 (A)는 비 호 (arc) 파일에 포함 된 다른 클래스 (B)를 상속합니다.
- 14. 비 -ARC 프로젝트에서 파일에 대해 ARC를 사용하려면 어떻게해야합니까?
- 15. 싱글 톤은 ARC 및 비 ARC가있는 프로젝트에서 작동합니까?
- 16. GC 응용 프로그램을 ARC 프레임 워크에 연결할 수 있습니까?
- 17. 다른 메모리 관리 ARC/no ARC
- 18. ARC 기반 프로젝트에서 릴리스가 어떻게 작동합니까?
- 19. realloc() & ARC
- 20. 같은 프로젝트의 ARC 및 비 ARC 버전을 모두 사용하십시오 중복 된 심볼 오류가 발생합니다
- 21. ARC 이전 도구를 파일 단위로만 사용할 수 있습니까?
- 22. 동일한 프로젝트에서 두 개의 프레임 워크를 사용할 수 있습니까?
- 23. iOS의 Twitter 통합 (ARC 포함)
- 24. ARC 옵션은 고정되지 메모리 누수를 사용할 수
- 25. Objective-C ARC
- 26. ARC 프로젝트에서 NSMutableDictionary를 다시 초기화하는 방법은 무엇입니까?
- 27. ARC 용 JSON 적용
- 28. 합성 복사 속성이 내 프로젝트에서 ARC
- 29. 는 ARC
- 30. UIViewController는 ARC 프로젝트에서 dealloc을 호출하지 않습니까?
나는 실제로 프로젝트에서 그걸 시도했지만 도움이되지 않았다. http://stackoverflow.com/questions/8375233/ld-duplicate-symbol-objc-retainedobject-on-ios-4-3-but-not-on-ios-5-0 –
런타임 문제가 발생하는 이유는 무엇입니까? ARC가 컴파일하는 중입니까? –
@ZakyGerman - ARC는 올바른 지점에'-retain'과'-release'를 삽입하는 것 이상을 수행하고, 새로운'@ autoreleasepool'과 같은 것을 소개합니다. 그래서 약간의 런타임 도움이 필요합니다. 이것은 iOS 5.0에 내장되어 있지만 4.x에는이 하위 호환성 라이브러리가 필요합니다. –