iOS中的内存管理最初是非ARC(自动引用计数),我们必须保留和释放对象.现在,它支持ARC,我们不必保留和释放对象. Xcode在编译时自动处理作业.
内存管理问题
根据Apple文档,内存管理中的两个主要问题是 : 去;
释放或覆盖仍在使用的数据.它会导致内存损坏,并且通常会导致应用程序崩溃,或者更糟糕的是导致用户数据损坏.
不释放不再使用的数据会导致内存泄漏.当分配的内存未被释放时,即使它永远不会被再次使用,也称为内存泄漏.泄漏导致您的应用程序使用不断增加的内存量,这反过来可能导致系统性能不佳或(在iOS中)您的应用程序被终止.
内存管理规则
我们拥有我们创建的对象,我们必须在它们发布时随后释放它们不再需要.
使用"保留"获取您未创建的对象的所有权.你不得不在不需要时释放这些对象.
不要释放你不拥有的对象.
处理ARC中的内存
您无需在ARC中使用release并保留.因此,删除视图控制器时将释放所有视图控制器的对象.同样,任何对象的子对象在释放时都会被释放.请注意,如果其他类具有对类的对象的强引用,则不会释放整个类.因此,建议为代理使用弱属性.
内存管理工具
我们可以借助Xcode工具分析内存的使用情况仪器.它包括活动监视器,分配,泄漏,僵尸等工具.
分析内存分配的步骤
步骤1 : 打开现有的应用程序.
第2步 : 选择Product,然后选择Profile,如下所示.
第3步 : 在下面显示的下一个屏幕中选择Allocations,然后选择Profile.
第4步 : 我们将看到如下所示的不同对象的内存分配.
步骤5 : 您可以在视图控制器之间切换,并检查内存是否正确释放.
第6步 : 同样,我们可以使用Activity Monitor来查看为应用程序分配的总内存,而不是Allocations.
第7步 : 这些工具可帮助我们访问内存消耗并找到可能发生泄漏的位置.