Начинающий: разница между Xcode 3 и Xcode 4 конкретно NSfunctions - PullRequest
0 голосов
/ 27 октября 2011

Я изучаю objc и Xcode из удобной бесплатной книги под названием How To Become и Xcoder , что довольно удобно. За исключением того, что он был написан в 2007 году с Xcode 3, и все его примеры взяты из этой версии, к сожалению, у меня OSX Lion и, следовательно, Xcode 4. Так что, к стати моего вопроса. Они предоставляют пример блока кода, как показано здесь:

//start
#import <Foundation/Foundation.h
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello, World!");
[pool drain];
return 0;
}
//end

Итак, мои проблемы в том, что я получаю более 20 ошибок, и XCode не распознает команды NSAutoreleasePool или NSLog. Кто-нибудь знает, почему это не сработает? Я уже добавил основы фонда. Я уже понял, что команда printf работает лучше, чем команда NSLog (которая, насколько мне известно, в большей степени используется для отчетов об ошибках), так что да, любая помощь будет полезна.

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

Фонд расположен на экране, где вам нужно дать название вашему проекту. В качестве значения по умолчанию установлено C, в вашем случае вам нужно щелкнуть раскрывающееся меню и выбрать вместо него Foundation.

Удачи.

1 голос
/ 27 октября 2011

Если NSLog не распознается, это не проблема для Xcode 3 по сравнению с Xcode 4. Ваш код не включает в себя самый основной код времени выполнения Objective C.Я бы предположил, что он компилируется как C, а не Objective-C.

Вы говорите, что вам пришлось добавить каркас Foundation - это указывает на то, что вы не начали свой проект с использованием шаблона на основе Objective-C.Когда вы выбираете Новый проект ... , какой шаблон вы выбрали?Любой из шаблонов приложений iOS должен работать, и большинство шаблонов приложений Mac OS X должны работать.Если вы решили создать инструмент командной строки, вы должны выбрать Foundation в качестве типа.

Edit: Кроме того, я должен добавить, что синтаксис для пулов авто-выпуска имеетизменено в последней версии Xcode, так как ARC используется по умолчанию.Вы можете либо отключить ARC, либо прочитать его, чтобы увидеть, в чем различия.Скорее всего, вам будет проще с ARC, так как вам не нужно беспокоиться об управлении памятью, но вам придется помнить об этом, если вы читаете книгу, которая ее не учитывает.

...