2011-12-07 9 views
6

iOS 4.3.x에서 @autorelease 키워드를 사용하여 코드를 실행하면이 오류가 발생합니다.@autoreleasepool을 사용하려면 어떤 iOS 버전이 필요합니까?

dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush 
    Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

dyld: Symbol not found: _objc_autoreleasePoolPush 
    Referenced from: /Users/Eonil/Library/Application Support/iPhone Simulator/4.3.2/Applications/3782382E-293A-4D5E-86E6-28BE35CF6048/EonilCocoaComplementsTester.app/EonilCocoaComplementsTester 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation 

나는이 키워드가 명시 적 자동 복구 풀 생성/삭제를 대체한다고 생각했습니다. 어쨌든 그것은 아니었고 오류를 던졌습니다. 특정 버전의 iOS에서만 지원됩니까? 그렇다면이 키워드에 대한 버전 정보는 어디에서 확인할 수 있습니까?

+1

이 ARC를 필요로하지 않는다 http://stackoverflow.com/questions/8069570/autoreleasepool-make-errors – RolandasR

답변

4

당신은 @autoreleasepool을 말하고 있습니까?

Xcode 4.2 및 iOS 5 SDK를 사용하는 경우 빌드 대상이 iOS 4.3.x 인 앱에서 @autoreleasepool을 사용할 수 있습니다. ARC가 @autoreleasepool의 "Objective-C 문법에 구문을 도입합니다"라는 ARC가 필요하다는 것을 나타내는 transitioning to ARC guidelines에도 불구하고 "이 구문은 모든 Objective-C 모드에서 사용할 수 있습니다."라고 계속됩니다. 내가 그 특히 명확한 문서 생각하지 않지만

는, 이것이 의미하는 것은 당신이와 ARC가-경우 아이폰 OS 5 SDK를 사용하지 않고 모두 @autoreleasepool 구문을 사용할 수 있다는 것입니다. 첫 번째 세대 아이폰 실행 iOS3.0에

+0

@autoreleasepool을 도움이 될 수 있습니다. 참조하십시오 .. http://stackoverflow.com/q/7950583/927947 – NJones

+0

아, 재미있는,이 문제를 해결하고 처음 읽는에 오해 될 수 링크 된 문서의 핵심 부분을 강조하기 위해 내 대답을 업데이 트했습니다 ... 내가 한 것처럼 . :) –

3

단지 테스트 @autoreleasepool는 {} -

+0

그건 사실이야. 단지 내 아이폰 3G IOS 3.1.3, 아무런 문제도 시도하지 않았다. – JomanJi

3

이 시뮬레이터에서 버그가 수 있도록 보인다 문제없이 작동합니다.

배포 대상을 4.2.1 대신 4.2로 설정하면 효과적입니다.

enter image description here

+0

나는 똑같은 문제가 있었는데 이것도 나를 위해 해결했다. – wasabi

+0

이 하나가 나를 위해 일했다. +1 그 :) – pahan