2012-05-07 2 views
2

Многие учебники Objective-C, кажется, используют следующую программу:Objective C Hello World ошибка

#import "Foundation/Foundation.h" 

int main() 
{ 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 
    NSLog(@"Hello world!"); 
    [pool drain]; 
    return 0; 
} 

я сделал вынимают все вещи о бассейнах, и работал хорошо. Но это дает мне сообщение об ошибке. «NSAutoreleasePool» недоступен: недоступен в режиме автоматического подсчета ссылок. Может, я сделал что-то не так?

Я использую Xcode 4.3.2. Я выбрал новый проект -> Command Line Tool -> Foundation. И это был исходный код, который я использовал.

+0

Забудьте этот код, если вы используете ARC;) – MJB

+0

шаблон main.m проекта должен иметь правильную версию этого кода уже. Вы изменили его? –

ответ

5

Это потому, что вы компилируете ARC, и этот источник является pre-ARC. Если вы измените режим компилятора, чтобы отключить ARC, он будет скомпилирован. Вы можете также использовать новый стиль autorelease бассейн (работает без АРК тоже):

#import "Foundation/Foundation.h" 

int main() 
{ 
    @autoreleasepool { 
     NSLog(@"Hello world!"); 
    } 
    return 0; 
}