OC高效率52之用「殭屍對象」調試內存管理問題

#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

相關文章
相關標籤/搜索