第六天-循环饮用

//
//  main.m
//  06-循环引用
//
//  Created by Apple on 14/12/1.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CZPerson.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
     
       CZPerson *person = [[CZPerson alloc] init];
       person.name = @"小花花";
       
        CZDog * dog = [[CZDog alloc] init];
        
        person.dog = dog;
        
        dog.person = person;
        
        [person release];
        [dog release];
        
    }
    return 0;
}

//
//  CZPerson.h
//  1201-内存管理
//
//  Created by Apple on 14/12/1.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CZDog.h"

@interface CZPerson : NSObject

//名字
@property (nonatomic,copy) NSString *name;

//狗
@property (nonatomic,retain) CZDog *dog;

@end


//
//  CZPerson.m
//  1201-内存管理
//
//  Created by Apple on 14/12/1.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "CZPerson.h"

@implementation CZPerson


-(void)dealloc
{
    NSLog(@"%s",__func__);
    self.name = nil;
    self.dog = nil;
    [super dealloc];
}

@end

//
//  CZDog.h
//  1201-内存管理
//
//  Created by Apple on 14/12/1.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

@class CZPerson;

@interface CZDog : NSObject

//@property (nonatomic,retain) CZPerson *person;
//当有循环引用的时候,其中一方必须是assign
@property (nonatomic,assign) CZPerson *person;

@end

//
//  CZDog.m
//  1201-内存管理
//
//  Created by Apple on 14/12/1.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "CZDog.h"
#import "CZPerson.h"

@implementation CZDog


- (void)dealloc
{
    self.person = nil;
    NSLog(@"%s",__func__);
    [super dealloc];
}
@end


你可能感兴趣的:(第六天-循环饮用)