我一直在尝试dispatch_async
在返回结果的方法中使用。但是,我观察到该方法在执行dispatch_async
块之前返回。因此,我没有得到我期望的结果。这是一些演示我的问题的代码。
-(BOOL) isContactExists {
BOOL isContactExistsInXYZ = YES;
UserId *userId = contact.userId;
dispatch_async(dispatch_get_main_queue(), ^
{
iOSContact *contact = [iOSContact contactForUserId:userId];
if (nil == contact)
{
isContactExistsInXYZ = NO;
}
});
return isContactExistsInXYZ;
}
该方法isContactExists
在其他地方被调用,并且基于该方法的响应,我必须做一些事情。但每一次,价值isContactExistsInXYZ
都不是我所期望的。在这种情况下我该如何处理dispatch_async
?