炫意html5
最早CSS3和HTML5移动技术网站之一

iOS – 内存管理

简述

iOS 中的内存管理最初是非 ARC(自动引用计数),我们必须保留和释放对象。现在,它支持 ARC,我们不必保留和释放对象。Xcode 在编译时自动处理这项工作。

内存管理问题

根据 Apple 文档,内存管理的两个主要问题是 –
  • 释放或覆盖仍在使用的数据。它会导致内存损坏,通常会导致您的应用程序崩溃,或者更糟的是,损坏用户数据。
  • 不释放不再使用的数据会导致内存泄漏。当分配的内存即使永远不会被再次使用也没有被释放时,这被称为内存泄漏。泄漏会导致您的应用程序使用越来越多的内存,进而可能导致系统性能不佳或(在 iOS 中)您的应用程序被终止。

内存管理规则

  • 我们拥有我们创建的对象,我们必须随后在不再需要它们时释放它们。
  • 使用 Retain 获得非您创建的对象的所有权。当不需要这些对象时,您也必须释放它们。
  • 不要释放你不拥有的对象。

处理 ARC 中的内存

您不需要在 ARC 中使用释放和保留。因此,当视图控制器被移除时,所有视图控制器的对象都将被释放。同样,任何对象的子对象在被释放时也会被释放。请注意,如果其他类对某个类的对象有强引用,则不会释放整个类。因此,建议对委托使用弱属性。

内存管理工具

我们可以借助 Xcode 工具仪器来分析内存的使用情况。它包括活动监视器、分配、泄漏、僵尸等工具。

分析内存分配的步骤

Step 1 − 打开现有应用程序。
Step 2 − 选择产品,然后选择配置文件,如下所示。
iOS 教程
Step 3 – 在如下所示的下一个屏幕中选择分配,然后选择配置文件。
iOS 教程
Step 4 – 我们将看到不同对象的内存分配如下所示。
Step 5 – 您可以在视图控制器之间切换并检查内存是否正确释放。
iOS 教程
Step 6 − 类似地,我们可以使用 Activity Monitor 来查看为应用程序分配的整体内存,而不是 Allocations。
iOS 教程
Step 7 − 这些工具可帮助我们访问内存消耗并定位可能发生泄漏的位置。

炫意HTML5 » iOS – 内存管理

Java基础教程Android基础教程