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

joa*_*oan 2 objective-c entry-point

我在Xcode中开始了一个新的iOS项目.文件 - 新建 - SingleViewApp

然后我选择了以下文件

在此输入图像描述

并搬到垃圾桶.然后我从Info.plist文件中删除了以下键: 在此输入图像描述

然后,我添加了一个名为C文件main.c中 的含量的main.c文件是:

int main(int argc, char * argv[]) {

        print("hello");
}
Run Code Online (Sandbox Code Playgroud)

而且这很有效,应用程序编译并运行并向控制台写"hello".我的问题是:不是main.m(而不是main.c)被认为是应用程序的入口点吗?

mat*_*att 6

文件名或其后缀没有规则:仅关于函数名称main.您的文件可以用C或Objective-C编写,因此其后缀可以是.c.m.毕竟,Objective-C程序是一个C程序; Objective-C是C.

但是,请注意您的应用现在无法使用Cocoa进行任何操作.实际上,它不是应用程序.它从不打电话UIApplicationMain.它只运行一行并退出.所以这有点傻.

开始使用macOS命令行工具模板的一种更有效的方法是开始你正在做的事情.注意你可以选择用C写它!您构建的内容非常类似于C命令行工具(除了没有iOS命令行工具).

  • 在第一句中稍微清楚一点:"name main"是指*function*,而不是文件.系统不关心你的"main() - 定义文件"是否命名为"myapp.m"或"superawesome.c",只要一件事定义为`main()`. (4认同)