OC4_内存管理法则

//

//  Dog.h

//  OC4_内存管理法则

//

//  Created by zhangxueming on 15/6/18.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import <Foundation/Foundation.h>



@interface Dog : NSObject



@end
//

//  Dog.m

//  OC4_内存管理法则

//

//  Created by zhangxueming on 15/6/18.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import "Dog.h"



@implementation Dog



@end
//

//  main.m

//  OC4_内存管理法则

//

//  Created by zhangxueming on 15/6/18.

//  Copyright (c) 2015年 zhangxueming. All rights reserved.

//



#import <Foundation/Foundation.h>

#import "Dog.h"

//对于引用计数来说,有一套内存管理的黄金法则:

//The basic rule to apply is everything that increases the reference counter with alloc, [mutable]copy[withZone:] or retain is in charge of the corresponding [auto]release.

//如果对一个对象使用了alloc、[mutable]copy、retain,那么你必须使用相应的release或者autorelease。

//通俗一点的说法就是谁污染谁治理,谁杀的谁埋。

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Dog *xiaoHei = [[Dog alloc] init];//1

        Dog *xiaoBai = [xiaoHei retain];

        Dog *xiaoHui = [xiaoHei copy];//copy用于字符串,不能用于对象,所有这里报错.

        

        [xiaoHei release];

        [xiaoBai release];

        [xiaoHui autorelease];

    }

    return 0;

}

 

你可能感兴趣的:(内存管理)