初识Objecive-C 之 内存管理
来源:互联网 发布:医院ap网络 编辑:程序博客网 时间:2024/06/05 02:14
1. 为什么要管理内存?
IOS为每一个程序分配了30M的内存,程序使用超过了20M就会收到警告,超过了30M就会crash程序(闪退)。内存管理就像图书馆,如果大家都去借书,但是没有人归还,那么图书馆很快就没有书可借了。
2. 程序存储的区域
代码区---存储代码
全局区---存储方法为的常量,如int a = 10 ;还存储这Static修饰的静态值
栈区---存储局部变量 如for循环里面的i值,栈根据的是后进先出的原则
堆区---C语言中的malloc(free)开辟出来的,OC中得alloc(释放dealloc)等
3. 内存管理的原则
谁创建谁释放,谁retain谁释放
4. @autoreleasepool{};创建一个自动释放池。如果程序中产生大量临时对象,以及并发线程时,需要建立自己的自动释放池块。
5. ARC:它可以在编译期由系统完成引用计数的管理,避免手工引用计数器带来的错误。
6. 注意:
EXC_BAD_ACCESS错误指的是访问了已经被释放的内存也称之为野指针错误。
nil空指针release是不会报错的也称之为空指针,它不并向java会有个空指针异常。
- 初识Objecive-C 之 内存管理
- 初识Objecive-C 之 属性
- 初识Objecive-C 之 继承
- 初识Objecive-C 之 NSString
- 初识Objecive-C 之 NSArray
- 初识Objecive-C 之 NSDictionary
- 初识Objecive-C 之 通知
- 初识Objecive-C 之 面向对象(一)
- 初识Objecive-C 之 面向对象(二)
- 初识Objecive-C 之 self关键字
- 初识Objecive-C 之 类目、延展、协议
- 初识Objecive-C 之 键值编码(KVC)
- 初识Objecive-C 之 键值观察(KVO)
- 初识Objecive-C 之 单例模式
- 初识Objecive-C之 委托模式
- 初识Objecive-C 之 多态不得不说的故事
- C++内存管理 之 初识allocator
- iOS内存管理之引用计数初识
- “ant debug install” 出错: sdk.dir is missing. Make sure....
- 简单二叉树的实现
- 字符串循环移位
- uva 10006 Carmichael Numbers(快速幂)
- 《C和指针》——第九章 判断回文
- 初识Objecive-C 之 内存管理
- [php]Collection和持久化工厂
- paip. erlang语法C++语法对比attilax总结
- 所见即所得:七大无需编程的DIY开发工具
- 装饰和继承的区别
- 数组与指针的区别
- Wireshark抓包工具使用教程以及常用抓包规则
- NSCoding协议
- OCP-1Z0-051-V9.02-125题