A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 、Z 中级黑马   /  2015-12-7 21:43  /  831 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

是关于强弱指针的.
#import <Foundation/Foundation.h>

@interface computer : NSObject

@end
#import "computer.h"

@implementation computer

-(void)dealloc{
   
    NSLog(@"%@---销毁了",self);
   
}
@end
#import <Foundation/Foundation.h>
#import "computer.h"

@interface Person : NSObject

@property NSString *name;

//弱指针book
@property (nonatomic,weak)computer *book;

@end
#import "Person.h"

@implementation Person

-(void)dealloc{
   
    NSLog(@"%@---销毁了",self);
   
}
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
//        问题开关
        __weak Person *pWeak  = [Person new];
        
        
        Person *ren = [Person new];
        
        NSLog(@"1.刚创建人手中的电脑地址:     = %@",ren.book);
        
        computer *book = [computer new];
        
        NSLog(@"2.刚创建的电脑的地址         = %@",book);
        
        ren.book = book;
        //弱         强
        /*@property (weak)computer *book;*/
        
        NSLog(@"3.人拿到电脑后,人手中电脑地址: = %@",ren.book);
        
        book = nil;  //强指针没了
        
        NSLog(@"4.赋值为空时,电脑的地址:      = %@",book);
        
        NSLog(@"5.既然是弱指针,强指针已经不在  = %@",ren.book);

        
        
    }
    return 0;
}
文中一共有两个类

//        问题开关
        __weak Person *pWeak  = [Person new];
这里你注释掉和打开是两种不同的结果,看地址,便知道了.纠结很久,
只能归结与Xcode的Bug了.
头都大了

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马