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
この状況でどう対処すればよいですか?