8

Xcodeの最近のバージョンでは、デフォルトでARCが使用されていることに気付きました。新しいプロジェクトを開始すると、Xcodeが生成するmain.mファイルはNSStringFromClass([AppDelegate class])、UIApplicationMainのアプリデリゲートのパラメーターとして使用されます@"AppDelegate"nil

新しい方法:

@autoreleasepool {
      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}

古い方法:

  @autoreleasepool {
      int retVal = UIApplicationMain(argc, argv, nil, nil);
      return retVal;
  }

これには理由があるのだろうか?少し不自然に思えますが、正直になりたいと思っています。

4

1 に答える 1

10

コンパイルチェックです。コンパイル時に引数をチェックできるとよいでしょう。文字列だけの場合は確認できません。

nil議論に関して、ドキュメンテーションは言う:

アプリケーションのメインnibファイルからデリゲートオブジェクトをロードする場合は、nilを指定します。

これは、xibファイルを使用してアプリケーションデリゲートのクラスを宣言していることを前提としています。まあ、多くのプロジェクトはそうではありません。一般に、xibファイルのないプロジェクトテンプレート(「空のアプリケーション」など)は、を使用できませんnil

于 2013-01-26T13:05:36.250 に答える