我是iPhone开发和目标C的新手。我已经决定先做一些关于Objective C的教程来掌握语言,但是有一些我不确定的事情,如果有人可以解释的话会很感激他们给我。
我已经从应用商店下载了Xcode 4.2,所以我正在使用。
第一个问题,你能在目标C中只有一个主要类吗?我现在正在阅读NewBoston教程,他有许多不同的教程,我习惯于Java编程,我只是为每个教程创建一个新类。但是,在Objective C中,当您创建一个新项目时,您将获得一个名为main.m的文件,该文件似乎是始终执行的默认类。我习惯于java,当你只创建一个项目时,可以在其中拥有任意数量的类,并且可以选择要运行的类。你能否在Objective C中做这样的事情?或者我是否必须为每个教程创建一个新项目?因为我不想继续改变主类,当我完成一个教程时,我喜欢保留文件,所以我可以回去查看它,如果我忘了什么。
关于Objective C中主要方法的第二个快速问题。主要方法是这样声明的
int main(int argc, char *argV[]){
为什么main方法是int声明?我习惯于Java,其中main方法是void,因为main方法不返回任何内容。对我来说,目标C的主要方法是int似乎很奇怪。只是很高兴理解。
提前感谢您提供任何帮助
答案 0 :(得分:2)
1)在Objective-C中,您有一个main
函数在启动时运行。结合iOS运行时也会进行一些初始化,并从项目信息中获取该信息(例如,启动Storyboard / NIB),每个项目只能有一个入口点。这有点源于这样一个事实,即虽然Java维护了大量的命名空间信息并且本身没有预定义的入口点,但Objective-C确实将所有内容编译为一个文件,并查找名为main
的一个函数。你可以看到这个像一个jar文件,它有自己的预定义入口点;只有你不能改变入口点的名称。
2)main的返回类型:很长一段时间,程序有返回代码表示成功(返回代码0)或失败(返回代码大于零,主要记录在手册页等)。实际上你在Java中也有相同的东西,看看System.exit(int exitcode)
,Java只是有一些默认处理,因为在man情况下不再需要返回代码(特别是在编写GUI应用程序时)。
答案 1 :(得分:1)
main.m
个main
方法。main
返回int
作为退出状态代码,可以由程序的调用者进行评估。这在C语言和派生语言中非常常见。返回0
表示“一切正常”。其他状态代码通常意味着出了问题。 答案 2 :(得分:1)
我同意TriPhoenix写的所有内容。
我只有一个小作品。
在iOS上的main
函数(它是函数而不是类方法)中,您总是调用函数UIApplicationMain来启动应用程序。
由于iOS上的应用程序永远不会退出,UIApplicationMain
函数永远不会返回,因此您的main
函数永远不会返回。在iOS中,返回值没有意义。它只是为了保持一致。