无法访问dispatch_async中的全局变量:"Variable is not Assignable (missing _block type specifier)"



在我的dispach_async代码中,我无法访问global variables block。我Variable is not Assignable (missing _block type specifier)收到此错误。

NSString *textString;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
   (unsigned long)NULL), ^(void) {
        textString = [self getTextString];
});

谁能帮我找出原因?

修改块内的变量时,必须使用 __block 说明符,因此您给出的代码应如下所示:

 __block NSString *textString;
 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
                                                 (unsigned long)NULL), ^(void) {
      textString = [self getTextString];
});

块捕获其主体中引用的变量的状态,因此捕获的变量必须声明为可变变量。 可变性正是你所需要的,考虑到你本质上是在设置这个东西。

相关内容

最新更新