ARCの黎明期に、xcodeに新しい主なテンプレートが登場しました。しかし、古いテンプレートについて質問があります。なぜこのようなココアタッチの主な機能テンプレートですか?
誰もが知っているように、ココアタッチアプリケーション用のXcodeで古いメイン関数テンプレートは、このしたドキュメントは明確にUIApplicationMainは決して戻らないと述べているので
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
しかし、最後の2行は到達不能です。終了時に単にexit()を呼び出すだけです。だから、なぜ、Appleはこのようなテンプレートを選んだのですか?なぜこれだけではないのですか?
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
return UIApplicationMain(argc, argv, nil, nil);
}
人々がこれを例として取り上げ、自動解放プールを適切に解放しないためですか?静的なアナライザをトリップすることになるからですか?もしかしたら何か?
この質問は余裕があるので、別の方法で質問してください。 Appleが行ったようにテンプレートを使用する技術的な理由はありますか?
"UIApplicationMainは決して[値を返しません]"と言ったときに自分自身と矛盾していませんか?また、main関数がintを返す必要があるのにUIApplicationMainを返すように勧めますか? – pasawaya