美文网首页
关于类引用问题

关于类引用问题

作者: aven_kang | 来源:发表于2022-05-31 22:44 被阅读0次
    modelTest *model1 = [[modelTest alloc]init];
    modelTest *model2 = model1;
//    model1 = nil;
    NSLog(@"%@",model1);
    NSLog(@"%@",model2);
2022-03-24 15:23:28.948232+0800 OCTEst[18514:6685444] <modelTest: 0x600003bb83f0>
2022-03-24 15:23:28.948291+0800 OCTEst[18514:6685444] <modelTest: 0x600003bb83f0>

从打印中可以看出,两个模型的地址是一样的, 都是指向同一块内存空间
如果把model1置空,那么会不会影响model2,答案是不会的

    modelTest *model1 = [[modelTest alloc]init];
    modelTest *model2 = model1;
    model1 = nil;
    NSLog(@"%@",model1);
    NSLog(@"%@",model2);
2022-03-24 15:25:25.596903+0800 OCTEst[18647:6688399] (null)
2022-03-24 15:25:25.597060+0800 OCTEst[18647:6688399] <modelTest: 0x600003df8430>

为什么不会影响到model2的值呢,因为我们把model1置空,相当于是把model1的指针给断开了,不再指向那一块内存空间,但是,那块内存空间依然是存在的,而且被model2指向着

相关文章

网友评论

      本文标题:关于类引用问题

      本文链接:https://www.haomeiwen.com/subject/pdzkjrtx.html