- iOS教程
- iOS - 主页
- iOS - 入门
- iOS - 环境设置
- iOS - Objective-C 基础知识
- iOS - 第一个 iPhone 应用程序
- iOS - 操作和出口
- iOS - 代表
- iOS - UI 元素
- iOS - 加速度计
- iOS - 通用应用程序
- iOS - 相机管理
- iOS - 位置处理
- iOS-SQLite 数据库
- iOS - 发送电子邮件
- iOS - 音频和视频
- iOS - 文件处理
- iOS - 访问地图
- iOS - 应用内购买
- iOS - iAd 集成
- iOS - 游戏套件
- iOS - 故事板
- iOS - 自动布局
- iOS - 推特和脸书
- iOS - 内存管理
- iOS - 应用程序调试
- iOS 有用资源
- iOS - 快速指南
- iOS - 有用的资源
- iOS - 讨论
iOS - 内存管理
iOS 中的内存管理最初是非 ARC(自动引用计数)的,我们必须保留和释放对象。现在,它支持ARC,我们不必保留和释放对象。Xcode 在编译时自动处理这项工作。
内存管理问题
根据苹果文档,内存管理的两个主要问题是 -
释放或覆盖仍在使用的数据。它会导致内存损坏,通常会导致应用程序崩溃,或更糟糕的是,用户数据损坏。
不释放不再使用的数据会导致内存泄漏。当分配的内存即使永远不会再次使用也没有被释放时,称为内存泄漏。泄漏会导致您的应用程序使用不断增加的内存量,这反过来可能会导致系统性能不佳或(在 iOS 中)您的应用程序被终止。
内存管理规则
我们拥有我们创建的对象,并且当不再需要它们时我们必须释放它们。
使用 Retain 来获取不是您创建的对象的所有权。当不需要这些对象时,您也必须释放它们。
不要释放不属于您的对象。
处理 ARC 中的内存
ARC中不需要使用release和retain。因此,当视图控制器被删除时,所有视图控制器的对象都将被释放。同样,任何对象的子对象在被释放时也会被释放。请注意,如果其他类对某个类的对象有强引用,则整个类将不会被释放。因此,建议对委托使用弱属性。
内存管理工具
我们可以借助Xcode工具来分析内存的使用情况。它包括活动监视器、分配、泄漏、僵尸等工具。
分析内存分配的步骤
步骤 1 - 打开现有应用程序。
步骤 2 - 选择产品,然后选择配置文件,如下所示。
步骤 3 - 在下一个屏幕中选择分配(如下所示),然后选择配置文件。
步骤 4 - 我们将看到不同对象的内存分配,如下所示。
步骤 5 - 您可以在视图控制器之间切换并检查内存是否正确释放。
步骤 6 - 类似地,我们可以使用活动监视器来查看为应用程序分配的总体内存,而不是分配。
步骤 7 - 这些工具帮助我们访问内存消耗并找到可能发生泄漏的地方。