全部。我有一个方法:
-(void)connectToServer:(NSError**)error{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//bla bla bla code;
*error=[NSError bla bla bla];
}
}
但是在那个错误变量之后没有修改。它没有块变量。我如何修改此方法以将 (NSError**) 错误标记为 __block 变量。如果 __block 变量仅用于局部变量?
现在我用 __block 属性解决了组织局部变量的问题:
-(void)connectToServer:(NSError**)error{
__block NSError *localError=*error;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//bla bla bla code;
localError=[NSError bla bla bla];
}
*error=localError;
}
但是这个解决方案不像我的,因为我需要重新声明 __block NSError *localError=*error;