HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在不使用ARC时替换__weak大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这行代码

__weak NSBlockOperation *weakOperation = operation;

这是触发此编译器错误

__weak attribute cAnnot be specified on automatic variable.

原因是我没有启用ARC(尚未准备好进行切换).所以从另一个StackOverFlow问题,我被建议使用:

__unsafe_unretained NSBlockOperation *weakOperation = operation;

这使得错误消失了,但对于我正在使用它的上下文,它不起作用(如果感兴趣,请参阅此问题:How to cancel NSOperationQueue).

所以我的问题是,在这个实例中我可以用__weak关键字代替什么来摆脱这个警告?当我使用__weak时,一切都能正常工作,但我担心它不会在iOS的未来版本中占据上风.

解决方法

您不应该担心iOS的未来版本,因为__weak是编译器在为您生成代码时解释的内容.

查看您的其他帖子向我建议您的目标是尽管在块内引用,但仍要避免保留weakOperation.在您不使用ARC的特定情况下,您可以将__weak替换为__block,以指示在捕获期间不应保留您的变量.

请注意,在ARC和手动保留计数之间,_clock对保留行为的影响是不同的.

大佬总结

以上是大佬教程为你收集整理的ios – 在不使用ARC时替换__weak全部内容,希望文章能够帮你解决ios – 在不使用ARC时替换__weak所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。