在我的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];
});
块捕获其主体中引用的变量的状态,因此捕获的变量必须声明为可变变量。 可变性正是你所需要的,考虑到你本质上是在设置这个东西。