Objective-C中应用程序的入口点

4
我在Xcode中开始了一个新的iOS项目。选择文件-新建-SingleViewApp。
然后我选择了以下文件,并将其移到垃圾桶中。 enter image description here 接着,我从Info.plist文件中移除了以下关键字: enter image description here 然后,我添加了一个名为main.c的C文件。 main.c文件的内容如下:
int main(int argc, char * argv[]) {

        print("hello");
}

令人惊讶的是,这个方法可行,应用程序可以编译、运行并在控制台输出“hello”。我的问题是:不是应该使用 main.m (而不是 main.c)作为应用程序的入口点吗?

1个回答

9

文件名或其后缀没有规定,只有函数名main有要求。你可以用C或Objective-C编写文件,所以后缀可以是.c.m。毕竟,Objective-C程序就是C程序;Objective-C是C的一部分。

然而,请注意,你的应用现在无法使用Cocoa进行任何操作。实际上,它不是一个应用程序。它从未调用UIApplicationMain,只运行了一行代码就退出了。所以这有点傻。

更有效的入门方法是使用macOS命令行工具模板。请注意,您可以选择用C语言编写!你所构建的很像C命令行工具(除了没有iOS命令行工具)。


4
第一句话如果稍微清晰一点的话,"name main" 指的是 函数,而不是文件。只要确保恰好有一个东西定义了 main(),系统就不会在意你的 "main() 定义文件" 的名字是 myapp.m 还是 superawesome.c - Rob Napier
1
@RobNapier 谢谢!我会再调整一下。 - matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接