2012-01-14 2 views
3

나는이 메시지를받을 이유는 어떤 생각 :NSAutoreleasePool을 사용할 수 없다는 경고 메시지가 표시되는 이유는 무엇입니까?

NSAutoreleasePool을 사용할 수 없습니다 : 자동 참조 계산 모드

ARC에서 사용할 수없는이 코드에 '릴리스'

의 명시 적 메시지 전송을 금지 :

#import <UIKit/UIKit.h> 

int main(int argc, char *argv[]) { 

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil); 
    [pool release]; 
    return retVal; 
} 
+1

답변 : http://stackoverflow.com/questions/6655842/nsautoreleasepool-is-unavailable – samfisher

답변

7

이것은 위젯을 컴파일하기 때문입니다. h 자동 참조 횟수 설정. 당신은 ARC와 다른 구조를 사용해야합니다 :

@autoreleasepool { 
    // Your code 
} 

또 다른 옵션은 turn off ARC for a specific file이다.

7

예, '참조'를 명시 적으로 사용할 수없는 자동 참조 계산 기능을 사용할 수 있습니다. 이처럼 보이도록하거나 비활성화 ARC에 필요하거나 주요 방법을 변경 : targets-에서

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 
0

-> 설정 -> 애플 LLVM Complailer 3.0

목표 - C 가비지 컬렉션 (Garbage Collection)을 구축 (로 변경) 지원을 [ -fobjc-gc]

관련 문제