iOS 内存管理的理解分享(理论篇)

首先说下为什么需要深入理解iOS 的内存管理.

苹果已经把好多需要管理内存的地方,通过内部的方法已经帮我们管理好了,平常开发中基本不需要开发管理内存的创建和释放。但是还是有很少的一些情况导致内存的泄漏和内存的异常,所以平常开发我们可能用不上,但是还是要了解内存管理来解决这些不多但是棘手的问题。

内存管理的思考方式

1.自己生成的对象,自己所持有 2.非自己生成的对象,自己也能持有 3.不再需要自己持有的对象时释放 4.非自己持有的对象无法释放

1.能自己生成对象并且自己持有的方法有:

alloc/new/copy/mutableCopy

2.除了上面说的4个方法剩下的都属于,非自己生成对象,但自己持有对象的方法。例如:

id obj = [NSMutableArray array]; //取得的对象存在,但不是自己持有对象 [obj retain]; //自己持有对象

下一个文章讲解,属性的修饰符对于内存的影响。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux运维学习

linux学习第六十六篇:shell中的函数,shell中的数组,告警系统需求分析

shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。 格式: function ...

2918
来自专栏Java帮帮-微信公众号-技术文章全总结

03.线程安全/同步/线程通讯

03.线程安全/同步/线程通讯 一.一个典型的Java线程安全例子 ? ? 上面例子很容易理解,有一张银行卡,里面有1000的余额,程序模拟你和你老婆同时在取款...

4207
来自专栏H2Cloud

TCPDUMP 抓包

  写了个脚本, 用于调试服务器消息传输, 代码如下: #!/bin/bash if [ $# -eq 0 ] ; then echo "usage local...

2445
来自专栏写代码的海盗

scala actor编程之对象传递

scala 最吸引人的一点就是actor并发编程了。但是纵观scala官方文档,baidu文档,IBM文档都写的通过字符串传呀传,如果用作actor编程说明当然...

2779
来自专栏Java编程技术

一个有关定时生产与消费的问题

按照上面的逻辑看的话,每个队列里面最多有一个元素。其实不然,因为在多线程模型中每个线程占用cpu执行的时间是按照时间片来划分的,每个线程执行完自己的时间片后会被...

641
来自专栏Python攻城狮

Python系统编程-进程1.进程1.多任务的引入2.多任务的概念

有很多的场景中的事情是同时进行的,比如开车的时候手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的;

763
来自专栏PHP实战技术

你真的了解如何将 Nginx 配置为Web服务器吗

阅读之前,建议先阅读初识 Nginx。 之后,我们来了解一下 Nginx 配置。

2308
来自专栏Python小屋

使用Python检查密码安全程度

本文主要演示几种内置用法的用法和代码优化技巧,所以没有使用正则表达式。 import string def check(pwd): #密码必须至少包含6个字符...

2885
来自专栏Java帮帮-微信公众号-技术文章全总结

03.线程安全/同步/线程通讯

03.线程安全/同步/线程通讯 一.一个典型的Java线程安全例子 ? ? 上面例子很容易理解,有一张银行卡,里面有1000的余额,程序模拟你和你老婆同时在取款...

3397
来自专栏salesforce零基础学习

salesforce 零基础开发入门学习(十五)salesforce中formula的使用(不含Date/Time)

本文参考官方的formula介绍PDF:https://resources.docs.salesforce.com/200/latest/en-us/sfdc/...

2005

扫码关注云+社区