【问题标题】:working of main.m in iphone programing [duplicate]iphone编程中main.m的工作[重复]
【发布时间】:2011-11-09 10:34:09
【问题描述】:

可能重复:
Is there any reason to modify the main.m file in your iOS applications?

我是 iphone 应用程序开发的新手,我想知道为什么我们在 iphone 编程中不积极使用 main.m 文件。我在很多书中看到了以下用法:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:



    int main(int argc, char *argv[]) 
    {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
    }

【问题讨论】:

标签: iphone objective-c main uiapplication


【解决方案1】:

iOS 程序做从main() 函数开始,通常在一个名为main.m 的文件中找到。您可能无法找到此文件,因为它通常位于名为 Other Sources 的组中,而不是大多数代码结束的 Classes 组中。

在大多数 iOS 程序中,main() 只是调用 UIApplicationMain(),它创建应用程序对象并运行主事件循环。

我不知道为什么会这样做的确切细节,但我会冒险猜测,如果您尝试在事件循环开始之前调用它,很多依赖于框架的东西会中断。

【讨论】:

  • 我知道,但在程序中我们不会在该文件上编写任何代码。我的问题是为什么我们不在那个文件上写任何代码
【解决方案2】:

ma​​in.m 仅用作应用程序的入口点(从那里开始),整个生命周期在 Objective C 类中处理。 application:didFinishLaunchingWithOptions: 方法属于 Application 的委托,用于在应用准备就绪后执行代码。

ps:你应该努力提高你的英语,因为它很难阅读和理解:P

【讨论】:

    【解决方案3】:

    您可以阅读有关主要功能here 的信息。不是你不修改主文件,你很少这样做。我过去在需要自定义 UIApplication 子类时修改了 main 函数。

    int retVal = UIApplicationMain(argc, argv, @"CustomApplication", nil);
    

    在一般的编程中,你永远不需要修改主类,但是如果你有任何特殊要求,你可以继续这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 2011-03-19
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2012-10-30
      • 2023-04-06
      相关资源
      最近更新 更多