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