【发布时间】:2011-10-02 13:36:35
【问题描述】:
当我得到这个时:
- (void)applicationWillResignActive:(UIApplication *)application {
我释放了我所有的对象并使我的所有计时器失效。
当我得到这个时:
- (void)applicationDidBecomeActive:(UIApplication *)application {
我重新分配了所有对象并让我的计时器再次运行。
一切都很好,除了现在如果我把我的程序放到后台,然后我实际上通过关闭 IOS 模拟器来终止程序,它会在行给出一个 SIGTERM 信号:
int retVal = UIApplicationMain(argc, argv, nil, nil);
另一方面,如果我通过关闭 IOS 模拟器来终止程序而不先将其放入后台,它不会发出 SIGTERM 信号。
我做错了吗?
对我来说,这类 SIGTERM 的主要原因如下。如果我在终止程序之前释放了我从未拥有或已经释放的任何对象,那么当我终止程序时我会得到那个 SIGTERM。
我不知道如何从模拟器或调试器中获取有关我对哪个对象执行此操作的信息。但是从 SIGTERM 得知我做了一个无关的发布,这足以让我通过检查来追捕它。
如果有人知道如何查找在 xcode 中被额外释放的对象,请加入。
【问题讨论】:
标签: objective-c ios cocoa-touch memory-management