Ho cercato di utilizzare dispatch_async
in un metodo che restituisce un risultato. Tuttavia, ho osservato che il metodo ritorna prima di eseguire il blocco dispatch_async
. A causa di ciò, non sto ottenendo i risultati che mi aspetto. Ecco un codice che dimostra il mio problema.dispatch_async in modalità ritorno obiettivo c
-(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;
}
Questo metodo isContactExists
viene chiamato da qualche altra parte e si basa sulla risposta da quel metodo devo fare alcune cose. Ma ogni volta, il valore di isContactExistsInXYZ
non è quello che mi aspetto. Qualcuno può spiegare come gestire dispatch_async
in questa situazione?
Grazie.
dispatch_async è asincrona è media che yhe ritorno sarà raggiunto entro la fine della spedizione asincrona – Francescu
@ Francescu, che ho capito con la mia analisi si può per favore aiutatemi a come gestire la cosa in altro modo, un frammento di codice o informazioni logiche. Grazie –