Objective-C 中的应用入口点

Entry point of an app in Objective-C

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

然后我选择了以下文件

并移至回收站。 然后我从 Info.plist 文件中删除了以下键:

然后我添加了一个名为main.c的C文件 main.c文件内容为:

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

        print("hello");
}

而且令人惊讶的是,这有效,应用程序编译并 运行 并将 "hello" 写入控制台。我的问题是: main.m(而不是 main.c)不应该是应用程序的入口点吗?

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

但是,请注意您的应用现在无法使用 Cocoa 进行任何操作。实际上,它不是一个应用程序。它从不调用 UIApplicationMain。它只是运行它的一行然后退出。所以有点傻。

开始您正在做的事情的一种更高效的方法是使用 macOS 命令行工具模板。观察你可以选择用 C 来写!你构建的是非常像一个C命令行工具(除了没有iOS命令行工具)。