无法访问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必须声明为可变的。 可变性正是你所需要的,考虑到你基本上设置这个东西。