1

我正在开发一个使用后台跟踪的 IOS 应用程序。为了最大限度地减少我在后台的内存占用,我想彻底摆脱我的应用程序中可以重建的所有内容(除了包含位置管理器的类之外的所有内容)。

在我的每个视图控制器中,我都实现了 dealloc 方法:

NSLog(@"销毁:%@", self);

现在,在应用程序委托方法“applicationdidenterbackground”中我设置:

[self.window setRootViewController:nil];

这应该可以正常工作,因为这是对我的视图控制器的唯一引用,但是,当我运行应用程序并按下主页按钮时,没有任何反应。直到我将应用程序带回前台,我才收到视图已被破坏的消息。我还验证了这不仅仅是日志延迟,使用仪器我可以看到内存仍然被分配,直到应用程序返回到前台。Applicationwillresignactive 也是如此。

这种行为正常吗?如果是这样,当应用程序进入后台时,销毁不需要的对象的正确方法是什么?谢谢

史蒂夫

4

0 回答 0