iOS - 如何创建和销毁UIApplication的串行实例?

时间:2010-12-29 01:13:06

标签: iphone objective-c ios uiapplication

这可能对任何人都没用,但是可以通过在try {} catch(NSException * e){}块中嵌套调用来从UIApplicationMain返回。我目前正在测试我的设置过程,以便在应用程序退出后运行一些逻辑。我想更进一步,实际编写单独的UIApplication子类并以串行方式运行它们但是UIApplicationMain不想玩得很好,它是一个单例,它必须记住它曾经是什么(第一个UIApplication被实例化) )。这是我从第一次调用UIApplicationMain返回后尝试创建第二个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

所以,有两个问题:

据我所知,我可能正在“做错了”,但我怎样才能清除UIApplication的内存,以便它认为每次连续的UIApplication实例化都是第一次?

如果这是死路一条,我可以尝试通过手动设置主事件循环并实例化UIApplication来替换UIApplicationMain,有没有人这样做过?

1 个答案:

答案 0 :(得分:2)

很确定你做不到。 UIApplication是在操作系统级别上进行管理的,Apple并没有真正为您提供驱动所有工作方式的关键。

如果可能的话,你会潜入私人API(这不应该是一个问题因为我们正在谈论非发布的测试套件设置吗?)。查找位于不同位置的UIApplication.h反编译头文件。寻找听起来像你想要的私人方法并试一试。

但很可能,这条道路会导致痛苦和痛苦。