gpt4 book ai didi

iphone - 使用 ARC 时为 "Copy"

转载 作者:行者123 更新时间:2023-11-28 20:14:45 29 4
gpt4 key购买 nike

我知道当使用 ARC 并且你有一个 NSString 属性时,你可以像使用 MRC 一样执行 @property(nonatomic, copy)。但我想知道,在我将我的项目转换为 ARC 之后,我的初始化方法中仍然有这个:

_someString = [someStringParameter copy]

这是一个错误吗?或者即使使用 ARC,我还需要明确地说“copy”吗?或者我应该这样做:

self.someString = someStringParameter

一切都会好起来的吗?有点困惑...

最佳答案

您永远不会在初始化程序中使用 self.someString = anything。点符号是方法调用。您不应该在尚未完全实例化的类上调用方法。最明显的失败案例:子类重写了 setSomeString: — 当调用该方法时,它在其 init 中的什么位置?

ARC 将处理实例变量的适当保留和释放,但不能自动进行复制——例如有 __strong__weak 修饰符,但没有 __copy。因此,在直接实例变量赋值时,您仍然需要显式复制。

关于iphone - 使用 ARC 时为 "Copy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454957/

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