我正在开发一个使用后台跟踪的IOS应用程序。为了最大限度地减少我在后台的内存占用,我想摆脱我的应用程序中可以重建的所有内容(除了包含位置管理器的类之外的所有内容)。
在我的每个viewcontrollers中,我已经使用:
实现了dealloc方法NSLog(@“Destroyed:%@”,self);
现在,在app delegate方法“applicationdidenterbackground”中我设置了:
[self.window setRootViewController:nil];
这应该可以正常工作,因为这是我的视图控制器的唯一参考,但是,当我运行应用程序并按下主页按钮时没有任何反应。直到我将应用程序带回前台,我才收到视图已被破坏的消息。我还验证了它不仅仅是一个日志延迟,使用的工具我可以看到内存仍然被分配,直到应用程序返回到前台。 Applicationwillresignactive也是如此。
这种行为是正常的吗?如果是这样,当应用程序进入背景时,销毁不需要的对象的正确方法是什么?感谢
史蒂夫