您的位置:首页 > 其它

OC高效率52之用“僵尸对象”调试内存管理问题

2016-03-13 00:00 211 查看
#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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: