3

ARC를 사용하는 iOS 프로젝트가 있는데, 앱의 @autoreleasepool을 만드는 방법과 관련된 오류가 발생합니다. main.m에서에서 @ 토큰 앞에서 @autoreleasepool 예상 표현

나는 간단한 코드가되도록 :
오류 : 이전에 '@'토큰

예상 표현

#import <UIKit/UIKit.h> 

int main(int argc, char *argv[]) { 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, @"MyAppDelegate"); 
    } 
} 

그리고 나는 오류 메시지가 나타납니다 그러나 이전 스타일의 자동 다시 작성 풀로 되돌릴 경우 :

#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. NSAutoreleasePool을 사용할 수 없습니다 : 특히 IDE에서 ARC 관련된 다양한 오류가 나타납니다 자동 참조 카운팅 모드
  2. ARC에서 사용할 수없는 것은 '릴리스'내가하려고하지만

의 명시 적 메시지 전송을 forbitds 빌드하려면 빌드가 성공적입니다.

충돌이 어디에 있습니까?
자동 출시 풀을 만드는 새로운 스타일을 사용하려면 어떻게해야합니까?

+3

오토 릴리즈를 :

enter image description here

그런 다음이 유사 main.m 쓰기 풀 오류 :'gcc' ('clang'과 반대)를 사용하여 코드를 컴파일하고 있습니까? ARC 오류 : 거기 컴파일러가 옳다. –

+0

왼쪽 패널 상단에서 대상을 선택하고 "설정 확인"버튼을 클릭 할 수 있습니다. – Rob

+0

appDelegate를 가져 와서'@ "MyAppDelegate"를'NSStringFromClass ([MyAppDelegate class]' – AMayes

답변

2

당신이 연타의 컴파일러 (애플 LLVM)이 아닌 GCC 사용되도록 설정되어 있는지 확인합니다 :

#import <UIKit/UIKit.h> 

#import "AppDelegate.h" 

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