OC高效率52之用“僵尸对象”调试内存管理问题
2016-03-13 00:00
295 查看
#import <Foundation/Foundation.h> #import <objc/runtime.h> /** * 僵尸对象所在的核心内存无法重用,因此不可能遭到复写。僵尸对象收到消息后,会抛出异常,其中准确说明了 * 发送过来的消息,并描述回收之前的那个对象。僵尸对象是调试内存管理问题的最佳方式。 */ @interface EOCClass : NSObject void PrintClassInfo(id obj); @end #import "EOCClass.h" /** BulidSetting * grabage 关闭ARC */ @implementation EOCClass void PrintClassInfo(id obj){ Class cls = objc_getClass(obj); Class supercls = class_getSuperclass(cls); NSLog(@"%s:%s",class_getName(cls),class_getName(supercls)); } int main (int argc , char *argv[]){ EOCClass *obj = [EOCClass new]; NSLog(@"Before release:"); PrintClassInfo(obj); [obj release]; NSLog(@"After release"); PrintClassInfo(obj); // NSString *desc = [obj description]; // NSLog(@"%@",desc); /* */ } @end
相关文章推荐
- OC高效率52不要使用retainCount
- 如何编译安装PHP扩展
- python生成时间戳控制数组
- Java 内部类
- Hash和Map
- javascirpt函数整理
- Corosync+Pacemaker+Isici实现MySQL的高可用
- Nginx(一):基础与配置文件简介
- Nginx(二):HTTP服务的相关配置
- 六大原则之选择
- 数据结构2.1线性表的线性表示和实现
- 姚班”十年:一场精英教育秀
- mongodb简单的基础操作
- mongodb中的查询find操作
- day10 Request&Response
- windows下通过pid 找到运行程序的路径
- mybatis 简单的CRUD
- mybatis 一对一和一对多
- mycncart 1.4.0.0 新版本发布
- CSS3 transitions 的几个demo01