Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不使用ARC时,替换_弱_Ios_Cocoa Touch_Objective C Blocks_Nsoperationqueue_Retain Cycle - Fatal编程技术网

Ios 不使用ARC时,替换_弱

Ios 不使用ARC时,替换_弱,ios,cocoa-touch,objective-c-blocks,nsoperationqueue,retain-cycle,Ios,Cocoa Touch,Objective C Blocks,Nsoperationqueue,Retain Cycle,我有一行代码: __weak NSBlockOperation *weakOperation = operation; 这将触发此编译器错误: __weak attribute cannot be specified on automatic variable. 原因是我没有启用ARC(尚未准备好进行切换)。因此,根据另一个StackOverFlow问题,建议我使用: __unsafe_unretained NSBlockOperation *weakOperation = operatio

我有一行代码:

__weak NSBlockOperation *weakOperation = operation;
这将触发此编译器错误:

__weak attribute cannot be specified on automatic variable.
原因是我没有启用ARC(尚未准备好进行切换)。因此,根据另一个StackOverFlow问题,建议我使用:

__unsafe_unretained NSBlockOperation *weakOperation = operation; 
这会使错误消失,但对于我使用它的上下文,它不起作用(如果感兴趣,请参阅此问题:)


所以我的问题是,在本例中,我可以用什么替换
\uu弱
关键字来消除此警告?当我使用
\uu-weak
时,一切都正常工作,但我担心它在未来的iOS版本中无法正常运行

您不应该担心iOS的未来版本,因为编译器在为您生成代码时会对其进行解释

查看您的另一篇帖子向我表明,您的目标是避免
weakOperation
被保留,尽管引用来自块内。在您不使用ARC的特定情况下,您可以用
\uu块
替换
\uu弱
,以指示在捕获期间不应保留变量

请注意,
\u块
保留
行为的影响在ARC和手动保留计数之间是不同的