2012-07-23 5 views
0

iOS SDK 5.1, Xcode 4.3.3을 사용하고 있습니다. ARC (Automatic Reference Counting)가 설정된 프로젝트를 개발했습니다. 나는 ARC가 iOS 4 이상의 버전에서만 작동한다는 것을 읽었습니다. 그러나 OS 3.0으로 배포 대상을 설정하면 프로젝트가 여전히 잘 컴파일됩니다. 그리고 iOS 4.0이 설치된 장치를 테스트하고 있습니다.이 응용 프로그램도 해당 장치에서 제대로 작동합니다.OS 3.0의 XCode 자동 참조 횟수 (ARC)

제 질문은이 응용 프로그램이 OS 3.0 실제 장치에서도 작동합니까? (ARC 사용).

사과가 작동하는 이유가 그것이 iOS 4 이상에서만 작동한다고 말하는 이유는 무엇입니까?

+0

나는 새로운 프로젝트를 추가하지 않으므로 프로젝트를 컴파일 할 수 있다고 생각하지만 릴리즈 호출은 자동으로 사용자에게 알려지지 않으므로 alloc, copy, retain을 사용하여 생성 한 모든 객체가 누출 될 가능성이 있습니다 –

+0

[귀하의 코드에 따라 다릅니다.] (http://stackoverflow.com/questions/9646607/how-does-my-arc-app-work-in-ios-3-x) – BoltClock

답변

0

__weak 변수를 사용하지 않는 한 코드는 정상적으로 작동합니다. ARC 코드가 일반 MRC 코드로 컴파일되면 retain/release/autorelease 코드가 처리됩니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 약한 변수를 사용하면 어떨까요? 런타임에도 컴파일 및 누수가 발생합니까? – sleepwalkerfx

+0

방금 ​​테스트했습니다. __weak 변수가 컴파일되지 않습니다. __weak 변수를 전혀 사용하지 않는다면 프로젝트에서 ARC를 사용하고 OS 3.0에 배포해도 괜찮습니까? 그러면 런타임에 메모리가 누수됩니까? – sleepwalkerfx

+0

@Sleepwalkerfx no. ARC는 컴파일러가 추가 한 계층 일 뿐이므로 코드가 iOS 3.x 장치에서 제대로 컴파일되고 실행됩니다. –

관련 문제