无法访问dispatch_async中的全局variables:“Variable is not Assignable(missing _block type specifier)”

在我的dispach_async代码block我无法访问global variables 。 我得到这个错误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]; }); 

任何人都可以帮我找出原因吗?

当你修改块内的一个variables时,你必须使用__block说明符,所以你给的代码应该看起来像这样:

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

块捕获它们体内引用的variables的状态,所以捕获的variables必须声明为可变的。 可变性正是你所需要的,考虑到你基本上设置这个东西。