gpt4 book ai didi

iOS,如何在不更改指针的情况下复制对象?

转载 作者:行者123 更新时间:2023-11-29 01:12:37 25 4
gpt4 key购买 nike

在 objective-c 中,NSCopying 协议(protocol)为我们提供了 copymutableCopy。它们都实现了 copyWithZone: 选择器。现在,我的要求是:

对于 A:地址是 0x00002bfa

A.name = @"John";
A.age = 10;

对于 B:地址是 0x0000843d

B.name = @"Lily";
B.age = 20;

A = [B customCopy]; 之后

现在 A 是:

对于 A:地址是 0x00002bfa

A.name = @"Lily";
A.age = 20;

只是改变了A的属性值,地址还是没有变化。因为它是自定义 NSObject。我认为 NSCopying 无法工作。因为copymutableCopy会改变A的指针,让它指向B,这不是我的意愿。

清楚了吗?任何想法!我被这个问题困惑了很久。谢谢!

最佳答案

尝试这样的事情

- (void) assignPropertiesFrom:(Object *) object {
self.name = object.name;
self.age = self.age;
}

[A assignPropertiesFrom:B];

它将用 B 的属性值重新填充 A,但 A 仍将是同一个对象,因此任何持有指向它的指针的人都将拥有所有更改

关于iOS,如何在不更改指针的情况下复制对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35571074/

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