gpt4 book ai didi

iphone - 将一个对象分配给另一个对象时,到底会发生什么,保留对象还是对象的整个副本?

转载 作者:行者123 更新时间:2023-12-03 16:55:38 25 4
gpt4 key购买 nike

classA{

classB objB=[[classB alloc]init];

objB.hasAnotherRef=self;


}


classB{

classA hasAnotherRef;


}

从上面可知,将 classA 本身分配给 classB ivar hasAnotherRef 时发生了什么?

我的问题是

classA 拥有 classB ,然后 classB 又拥有 classAobjB.hasAnotherRef=self; 这一行。

那么classA和classB的对象大小是多少。

我很困惑。

哪个尺寸最大?

最佳答案

这里的关键是 Objective-C 对象始终是指针。如果不是这个事实,两个结构的大小将是无限的(由于循环引用)。在正确的 Objective-C 中,类看起来像这样:

@class classA;
@class classB;

@interface classA {
classB * objB;
}
@end

@interface classB {
classA * objA;
}
@end

在这种情况下,两个类的大小都是一个指针的大小。

关于iphone - 将一个对象分配给另一个对象时,到底会发生什么,保留对象还是对象的整个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com