0
코드 if (dispatch_get_current_queue() == socketQueue)
이 필요한 이유는 무엇입니까? 왜 우리는 그냥 dispatch_sync(socketQueue, block)
을 직접 사용할 수 없습니까 ???dispatch_queue_t 및 dispatch_sync 호출 정보
미리 감사드립니다.
- (BOOL)isConnected
{
__block BOOL result = NO;
dispatch_block_t block = ^{
result = (flags & kConnected) ? YES : NO;
};
if (dispatch_get_current_queue() == socketQueue)
block();
else
dispatch_sync(socketQueue, block);
return result;
}
BTW 코드는 당신이 교착 상태 때문에 현재의 일련 큐에 블록을 예약 dispatch_sync
를 호출 할 수 없습니다 XMPPFramework
안녕 스벤, 다시 뵙겠습니다. 조금 불분명 함. dispatch_async는 블록이 __block 값을 변경 한 경우 어떻게 비동기식이 될 수 있습니까? – Henry