gpt4 book ai didi

iphone - 什么时候用 retain 什么时候用 copy

转载 作者:太空狗 更新时间:2023-10-30 03:17:40 25 4
gpt4 key购买 nike

我对使用哪个以及何时使用感到困惑。有经验法则吗?在大多数情况下可以使用它们中的任何一个吗?有什么特殊规定吗?

@property (nonatomic, retain) NSDate *theDateFromPicker;
@property (nonatomic, copy) NSDate *theDateFromPicker;

在这种情况下,哪个是最佳选择?

谢谢-代码

最佳答案

当您不希望对象被另一个对象修改的可能性时,您会想要使用复制。

一个很好的例子是NSString。假设您有这段代码:

@property (nonatomic, retain) NSString *aString;

// in some other class

NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"test"];
theObject.aString = mutableString; // theObject retains the mutable string

[mutableString setString:@"test2"];

这里发生的事情是您将值“test”分配给 aString,但随后它在外部被修改并变为“test2”,因为您保留可变字符串。如果您设置了 copy,就不会发生这种情况,因为您正在制作可变字符串的副本

关于iphone - 什么时候用 retain 什么时候用 copy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087208/

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