【问题标题】:Entry point of an app in Objective-CObjective-C 中应用程序的入口点
【发布时间】:2016-08-28 16:53:09
【问题描述】:

我在 Xcode 中开始了一个新的 iOS 项目。 File-new-SingleViewApp

然后我选择了以下文件

并移至垃圾箱。 然后我从 Info.plist 文件中删除了以下键:

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

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

        print("hello");
}

令人惊讶的是,这行得通,应用程序编译并运行并将“hello”写入控制台。我的问题是:ma​​in.m(而不是 main.c)不应该是应用程序的入口点吗?

【问题讨论】:

    标签: objective-c entry-point


    【解决方案1】:

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

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

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

    【讨论】:

    • 在第一句中稍微清楚一点:“名称 main”指的是 函数,而不是文件。系统不关心您的“main() 定义文件”是命名为 myapp.m 还是 superawesome.c,只要恰好一件事定义了 main()
    • @RobNapier 一如既往的感谢;我会调整的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多