【发布时间】:2012-08-23 09:25:46
【问题描述】:
我有一个应用程序(仅限 ios5),它在方法内部声明了一个弱变量,用于在块内引用视图控制器的实例。
QRCodeViewController * __weak weakSelf = self;
问题是编译器显示警告说:
__weak 属性不能在自动变量上指定
在那个应用程序中,我使用了很多弱引用,我从来没有看到过这样的警告,与其他类的唯一区别是这个类是在 .mm 文件中实现的,因为它使用 c++ 对象并且项目可以如果我将其保留为 .m,则不编译。
我必须说代码似乎运行良好。
有什么建议吗?
【问题讨论】:
-
不应该是
__weak QRCodeViewController *weakSelf = self;吗? -
@Martin 任何一种都可以,它们是等效的,你的方式是我看到使用频率更高的方式,但 Andrea 的方式是 Apple 推荐的方式。
-
类似问题:stackoverflow.com/questions/10431110/…。答案是部署目标设置为 4.0,但您的情况并非如此。对吗?
-
你好,我的部署目标是>ios5 only。关于 Analog File 所写的语法,它们都给出了相同的警告。
-
你是在外面使用它的块做这个,不是吗?
标签: objective-c ios automatic-ref-counting objective-c++ weak-references