我的应用程序往往会崩溃...... :(
我知道我在取消分配视图和对象方面一直犯错误。我只是想在最后解除内存中的内存,我怎样才能在代码之间管理内存......
此外,我的大多数viewcontrollers使用-(void)ViewDidLoad
来创建视图。所以,在释放内存之前我也使用-(void)ViewDidUnload
???
如果是,那么请指导我如何使用它?
还有其他方法可以解决内存问题吗? :(
答案 0 :(得分:1)
请记住viewDidLoad
可以被多次调用,尤其是在内存不足的情况下,可以自动卸载视图以节省内存。
在这种情况下,您可以在分配对象之前检查对象是否为nil,或者在内存警告中取消分配它(在didReceiveMemoryWarning
中,如果self.view.superview == nil
则会自动释放对象。
您还应该在某些时候了解分析工具,或者至少知道泄漏分析器。在Xcode中转到Run -> Run With Performance Tool -> Leaks
。这个工具可能会遇到一些问题,但是一旦你掌握了这个问题,你就会想知道没有它你是如何生活的(例如,如果你的主机名中有特殊字符,你需要重命名它)。
答案 1 :(得分:0)
如果您在.h文件中创建了任何对象并仅分配了一次,那么您应该释放该对象 在这种方法中:
- (无效)的dealloc { [myObject release]; [super dealloc]; }
但是如果你在本地(.m)文件中创建了任何对象,那么就在不再需要它的地方发布它。