¿Cómo puedo hacer que un bloque se ejecute sincrónicamente, o hacer que la función espere el controlador antes de la declaración de devolución, para que los datos puedan pasarse desde el bloque?Hacer que los bloques de iOS se ejecuten sincrónicamente
-(id)performRequest:(id)args
{
__block NSData *data = nil;
[xyzclass requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
data = [NSData dataWithData:responseData];
}];
return data;
}
editado para hacer un fragmento de código más específico – Sathya
en cualquier punto del tiempo si se encuentra con la necesidad de sincronizar para sincronizar, hay algo terriblemente mal con su diseño. –
Simplemente curioso, ¿por qué quieres hacerlo? Si solo desea completar el bloque en otro lugar, entonces su método "performRequest" también debe incluir un bloque al que se debe llamar dentro de la finalización del bloque interno. como Kunal señaló que hay algo mal con su diseño, ya que desea hacerlo. –