黑马程序员-IOS学习笔记 OC 内存管理
2015-07-17 03:42
435 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------
内存管理的范围
所有的集成了NSObject的对象的内存管理
基本数据类型(int double float char struct enum)的数据内存不需要我们进行管理
内存管理的原则
1)
只要还有人在使用某个对象,那么这个对象就不会被回收;
只要你想使用这个对象,那么就应该让这个对象的引用计数器+1;
当你不想使用这个对象时,应该让对象的引用计数器-1;
2)谁创建(new alloc init copy) 谁release
3)谁retain 谁 release
内存管理研究的内容:
1)野指针: i.定义的指针变量没有初始化 ii.指向的空间已经被释放了
2)内存泄露:
Person *p = [Person new];
p 栈区
[Person new] 堆区
如果栈区的p已经释放了,而堆区的空间没有释放,堆区的空间就被泄露了
内存管理的范围
所有的集成了NSObject的对象的内存管理
基本数据类型(int double float char struct enum)的数据内存不需要我们进行管理
内存管理的原则
1)
只要还有人在使用某个对象,那么这个对象就不会被回收;
只要你想使用这个对象,那么就应该让这个对象的引用计数器+1;
当你不想使用这个对象时,应该让对象的引用计数器-1;
2)谁创建(new alloc init copy) 谁release
3)谁retain 谁 release
内存管理研究的内容:
1)野指针: i.定义的指针变量没有初始化 ii.指向的空间已经被释放了
2)内存泄露:
Person *p = [Person new];
p 栈区
[Person new] 堆区
如果栈区的p已经释放了,而堆区的空间没有释放,堆区的空间就被泄露了
相关文章推荐
- Lua的内存管理浅析
- 深入探讨PHP中的内存管理问题
- Objective-C的内省(Introspection)用法小结
- linux 内存管理机制详细解析
- 解析PHP中的内存管理,PHP动态分配和释放内存
- javascript内存管理详细解析
- JavaScript内存管理介绍
- Cocos2d-x的内存管理总结
- javascript错误的认识不用关心内存管理
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中NSLog输出格式大全
- Python深入学习之内存管理
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- 简单说说STL的内存管理
- objective-c中生成随机数的方法
- 在Swift中使用Objective-C编写类、继承Objective-C类
- Swift能代替Objective-C吗?