Objective c 初学者:Xcode 3和Xcode 4函数之间的区别

Objective c 初学者:Xcode 3和Xcode 4函数之间的区别,objective-c,xcode4,nslog,nsautoreleasepool,Objective C,Xcode4,Nslog,Nsautoreleasepool,我正在从一本叫做《非常方便》的免费电子书学习objc和Xcode。除了它是在2007年用Xcode 3编写的,它的样本都来自那个版本之外,不幸的是,我有OSX Lion,所以是Xcode 4。因此,我的问题很棘手。它们提供了一个示例代码块,如下所示: //start #import <Foundation/Foundation.h int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutore

我正在从一本叫做《非常方便》的免费电子书学习objc和Xcode。除了它是在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
//开始

#导入如果未识别到
NSLog
,这与Xcode 3和Xcode 4无关。您的代码没有包含最基本的Objective-C运行时代码。我假设它被编译为C而不是Objective-C

<>你说你必须添加基础框架——这表明你没有使用基于Objul-C的模板来启动你的项目。选择“新建项目…”时,选择了哪个模板?任何iOS应用程序模板都可以工作,大多数Mac OS X应用程序模板都可以工作。如果选择构建命令行工具,则应选择基础作为类型。


编辑:另外,我应该补充一点,在最新版本的Xcode中,自动释放池的语法已经更改,因为默认情况下使用ARC。您可以关闭ARC,也可以查看它的区别。有可能你会发现ARC更容易,因为你担心的内存管理要少得多,但是如果你在跟踪一本不考虑它的书,你必须记住它。

< P>这个基础位于你需要给你的项目命名的屏幕上。作为默认值,它被设置为C,在你的情况下,你需要点击下拉菜单并选择Field.
祝你好运。

谢谢,我选择了一个命令行工具,但我看不出在哪里选择基金会作为类型。我再去看看。正如我所说的,我的教程展示了如何在Xcode 3中实现这一点,但是当我查看“选择模板”菜单时,它是完全不同的。谢谢你的帮助,我会去研究ARC,虽然它听起来很有用。在基础的导入中,你错过了结尾“>”,这也可能导致问题: >导入[你也把IDE(XCODEL)与API(可可)混淆了。