0

これはほとんど役に立たないかもしれませんが、try {} catch(NSException * e){}ブロックに呼び出しをネストすることでUIApplicationMainから戻ることができます。私は現在、アプリケーションの終了後にロジックを実行するために、セットアッププロセスをテストするためにこれを行っています。これをさらに一歩進めて、実際に個別のUIApplicationサブクラスを作成し、それらをシリアルで実行したいのですが、UIApplicationMainはうまく機能したくないので、シングルトンであり、かつてのUIApplication(インスタンス化される最初のUIApplication)を覚えておく必要があります。 )。UIApplicationMainへの最初の呼び出しから戻った後に2番目のUIApplicationを作成しようとすると、次のエラーが発生します...

2010-12-28 16:01:36.890 SomeFakeAppName[26993:207] *** Assertion failure in UIApplicationInstantiateSingleton(), /SourceCache/UIKit_Sim/UIKit-1447.6.4/UIApplication.m:1263

したがって、2つの質問:

私はおそらく「間違っている」ことを理解していますが、UIApplicationのメモリをクリアして、連続する各UIApplicationインスタンス化が最初であると見なすにはどうすればよいでしょうか。

これが行き止まりの場合は、メインイベントループを手動で設定してUIApplicationをインスタンス化することで、UIApplicationMainを置き換えてみることができますが、誰かがこれを行ったことがありますか?

4

1 に答える 1

2

できないことは確かです。UIApplicationはOSレベルで管理されており、Appleは実際にはすべてがどのように機能するかを推進するためのキーを提供していません。

可能であれば、プライベートAPIに飛び込むことになります(リリースされていないテストスイートのセットアップについて話しているので、問題になることはありませんか?)。いくつかのさまざまな場所にある逆コンパイルされたUIApplication.hヘッダーファイルを検索します。あなたが望むもののように聞こえるプライベートメソッドを探して、それを試してみてください。

しかし、おそらく、この道は痛みと苦しみにつながります。

于 2010-12-29T17:07:28.190 に答える