当我运行 Xcode 4.5 时,默认情况下它处于 ARC Off 阶段。但是当我们创建 Xcode 项目时,Strong 属性来代替 Retain。
1)如果强弱与ARC有关,为什么它会出现在非Arc项目中?
2)如果strong和retain都相同,如果我在早期的xcode版本中为非Arc项目将关键字retain更改为strong,它会正常工作吗?
当我运行 Xcode 4.5 时,默认情况下它处于 ARC Off 阶段。但是当我们创建 Xcode 项目时,Strong 属性来代替 Retain。
1)如果强弱与ARC有关,为什么它会出现在非Arc项目中?
2)如果strong和retain都相同,如果我在早期的xcode版本中为非Arc项目将关键字retain更改为strong,它会正常工作吗?
是的,strong
它只是retain
不使用 ARC 的同义词 - 默认情况下,它包含在非 ARC 项目中,以最大限度地减少在 ARC 和非 ARC 之间转换时所需的更改,因为retain
它不适用于 ARC,但strong
适用于两种项目类型。
另外,是的,如果您将其更改为retain
,那不会破坏您的代码。
除了 H2CO3 答案:xCode 不会就这种情况向您发出警告。实际上,如果您从 ARC 实现的项目中添加此类,请记住-(void)dealloc()
在协议实现的情况下实现方法和释放委托。