关于OC中的僵尸指针(野指针)
来源:互联网 发布:iphone 读书软件 编辑:程序博客网 时间:2024/05/18 00:31
涉及到内存管理问题的都是类类型的变量,而在OC中我们操纵这些对象都是通过操纵指向他们的指针来完成的,一致很多时候会忽略指针存在。比如定义UIView * view = [[UIView alloc]init];然后我们会使用view这个指针来做许多的操作。而由指针带来的一个性质是,当view == nil的时候,是指view这个指针没有指向任何地方,不能代表view指向的地方的值是空的。同样当view不为nil的时候,值说明它指向了一个地方,而不能说明它指向的地方有值。僵尸指针就是这样情况,比如:
UIView * view1 = [[UIView alloc]init]; UIView * view2 = view1;如果后来view1 dealloc了,内存没了,这时view2依然指向原来的地方,因为指针保存的是指向内存的地址,所以view2不是空的,但view2指向的地方是空的,这时view2就叫僵尸指针(看起来是“活的”,其实已经“死了”)。这时对view2做任何操作,就会程序崩溃。而且最糟糕的事情是,你好不能判断这时view2指向的地方是否内存释放了,因为你根本就不能调用view2。所以除了内存管理上做好之外,还有一个要注意的是释放掉一个内存后,如果这个指针还需要,要么赋新值,要么给个nil。
0 0
- 关于OC中的僵尸指针(野指针)
- OC基础-野指针和僵尸对象22
- 僵尸对象 野指针
- 浅谈OC中的指针
- 野指针与僵尸对象
- 关于野指针(迷途指针),空指针,通用指针
- 智能指针 与 oc中的指针
- 黑马程序员-我的第十二篇学习日记:OC中空指针,野指针,僵尸对象,retain和release基本使用
- 【oc】指针
- oc-空指针和野指针
- OC 空指针和野指针
- Objective-c - 野指针和僵尸对象
- 野指针----内存回收本子----僵尸对象
- iOS积累--- 野指针和僵尸对象
- ios-野指针和僵尸对象
- iOS 野指针和僵尸对象
- 关于C++中的指针
- 黑马程序员--oc中的野指针
- hdu1037
- java -jar
- Android学习——读书笔记
- 2014华为机试题9:通过键盘输入100以内正整数的加、减运算式
- HDU - 4941 Magical Forest
- 关于OC中的僵尸指针(野指针)
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
- spirng4集成jersey1.18
- 网线接错导致的网络打印机通讯异常
- 游标和动态SQL
- 20个设计模式和软件设计面试问题
- virtualbox中添加ubuntu的新硬盘
- 分布式文件系统ceph
- ubuntu 中显示器分辨率不正常之解决