oc语言第七课 内存管理一——ios学习连载12
2015-07-30 08:00
417 查看
1.内存管理是关于如何管理对象生命周期的编程原则
2.oc中的内存管理只针对oc中的对象,所有的对象都继承NSObject
3.基本数据类型不需要管理内存(int、long、double、float、char、struct......)
4.当一个对象没有人再使用,该对象应该从内存中销毁掉
5.所有oc的对象都有一个计数器,称为引用计数
6.每个对象都有一个retainCount引用计数,表示当前对象被引用的数量
7.引用计数加减:(1)调用retain方法,计数+1,调用release方法,计数-1
(2)当引用计数为0时,说明没有人使用此对象,此对象会被系统销毁
8.一旦引用计数为0,也就表示内存销毁了,之后就不要再向该对象发送任何消息了,否则会引起程序的崩溃
9.黄金法则:如果一个对象使用了alloc、[mutable]copy、retain,那么就必须使用相应的release或者autorelease释放
10.切换ARC模式——MRC模式:选择工程文件——>搜索输入“automatic”——>修改Object-C Automatic Reference Counting 改为No
11.当对象的引用计数为0时,系统调用此对象的dealloc方法
12.delloc方法永远不要主动调用它,应该让系统监听引用计数为0时自动调用
13.@property可以为一个属性自动生成set和get方法,不需要再手动编写
14.@property的使用:
(1)原子性:atomic:多线程环境下,存在线程保护,默认
nonatomic:多线程环境下,不存在线程保护
(2)赋值:assign:直接赋值,默认(基本数据类型)
retain:保留对象(对象类型)
copy:拷贝对象(字符串类型)(copy浅拷贝,mutablecopy深拷贝)
(3)读写性:readwrite:生成getter、setter方法,默认
readonly:只生成getter方法
15.凡是写@property的地方,若要同时复写set和get方法,需要添加实例变量
2.oc中的内存管理只针对oc中的对象,所有的对象都继承NSObject
3.基本数据类型不需要管理内存(int、long、double、float、char、struct......)
4.当一个对象没有人再使用,该对象应该从内存中销毁掉
5.所有oc的对象都有一个计数器,称为引用计数
6.每个对象都有一个retainCount引用计数,表示当前对象被引用的数量
7.引用计数加减:(1)调用retain方法,计数+1,调用release方法,计数-1
(2)当引用计数为0时,说明没有人使用此对象,此对象会被系统销毁
8.一旦引用计数为0,也就表示内存销毁了,之后就不要再向该对象发送任何消息了,否则会引起程序的崩溃
9.黄金法则:如果一个对象使用了alloc、[mutable]copy、retain,那么就必须使用相应的release或者autorelease释放
10.切换ARC模式——MRC模式:选择工程文件——>搜索输入“automatic”——>修改Object-C Automatic Reference Counting 改为No
11.当对象的引用计数为0时,系统调用此对象的dealloc方法
12.delloc方法永远不要主动调用它,应该让系统监听引用计数为0时自动调用
13.@property可以为一个属性自动生成set和get方法,不需要再手动编写
14.@property的使用:
(1)原子性:atomic:多线程环境下,存在线程保护,默认
nonatomic:多线程环境下,不存在线程保护
(2)赋值:assign:直接赋值,默认(基本数据类型)
retain:保留对象(对象类型)
copy:拷贝对象(字符串类型)(copy浅拷贝,mutablecopy深拷贝)
(3)读写性:readwrite:生成getter、setter方法,默认
readonly:只生成getter方法
15.凡是写@property的地方,若要同时复写set和get方法,需要添加实例变量
相关文章推荐
- C语言的历史
- 【C语言探索之旅】 第二部分第十课:练习题和习作
- 黑马程序员--学习C语言文件操作
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序——C++实现
- C语言播放MP3音乐
- C++语言中随机数的使用
- leetcode_Power of Two_easy
- 将Python代码嵌入C++程序进行编写的实例
- Convert Sorted List to Binary Search Tree
- 《C++编程思想》 第七章 常 量 (原书代码+习题+解答)
- C++对象模型——Copy Constructor 的建构操作(第二章)
- c++ primer (5th) 第九章,顺序容器
- C++ 头文件相互包含的问题
- C语言面试题(二)
- C++ 11 理解lambda表达式
- c语言中文件相关操作
- c语言中文件相关操作
- C/C++ 常见面试题目 (一)
- 包含的结构的结构,2种方法实现
- 使用C语言,利用for循环打印菱形(每个相邻菱形都要带空格)