重构为弧导致"合成'弱'属性只允许在弧或gc模式下"

unp*_*edk 8 iphone ios4 ios5

我正在使用xcode 4.4.1 for iOS target 5.1我已经使用ARC启动了我的项目,并且在项目中间我已经为我的项目添加了一些非弧的第三方源代码.此时,我决定尝试在xcode中进行重构,并发生错误.它来自我的一个原始源代码.

我有一个(非原子的,弱的)属性,我已经合成它==>仅在ARC或GC模式下允许合成'弱'属性.

我是puzzeled - 我正在使用弧并且它抱怨它只允许在弧线?

目前,我已经从其他项目重构了第三方应用程序并将其复制到我的项目中工作,但上面的问题我还是想了解原因.谢谢!(顺便说一句,当我转换为弧线时,它表示目标目前使用ARC)

dac*_*gen -1

而是使用:

@property(nonatomic,assign)
Run Code Online (Sandbox Code Playgroud)

*注意 - 这与弱不同,但非常相似。Weak 还将对象设置为 nil,而 allocate 则不会。

  • 是的,但他的目标是 5.1,所以这不是正确的答案。听起来问题是他已经将其设置为 ARC 项目,并且出于某种原因尝试在之后对其进行转换。这会抛出奇怪的错误消息,如所描述的那样。例如,如果他按照你说的做,然后转换为 ARC,它会建议将它们更改为弱:)奇怪的是,如果你尝试在已经实现 ARC 后转换它,它会提前抛出错误 (2认同)