2012-09-23 9 views
5
[AsyncRequest performGetRequestWithUrl:[NSString stringWithFormat:@"http://%@/api/streams/%d", @"server.herokuapp.com", userId] 
        completionHandler:^(NSDictionary *result, NSError *error) { 
    // Create new SBJSON parser object 
    NSError *e; 
    NSArray *jsonArray =[NSJSONSerialization JSONObjectWithData:result options:NSJSONReadingMutableContainers error: &e]; 

    NSLog(@"parse result to JSON object with jsonArray: %@ and error: %@", jsonArray, e.description); 

    if ([jsonArray valueForKey:@"error"]) { 
     return nil; 
    } 

    NSLog(@"getStreams size of the return array: %d", [jsonArray count]); 
    NSMutableArray* data = [[NSMutableArray alloc] initWithCapacity:0]; 

    if (jsonArray) { 
     data = [[NSMutableArray alloc] initWithCapacity:[jsonArray count]]; 
     for (NSDictionary *item in jsonArray) { 
      NSLog(@"item: %@", item); 
      [data addObject:[[Stream alloc] initWithJSONObject:item]]; 
     } 
    } 

    onComplete(data, error); 

}]; 

Recibo un extraño error en este código. Muestra el mensaje de error "Obtención de tipos de puntero de bloque incompatibles que envían void * (^) (NSDictionary * _strong, NSError * _strong) al parámetro de tipo 'void (^) (NSDictionary * _strong, NSError * _strong)'Obtención de tipos de puntero de bloque incompatibles que envían void * (^)

Aquí es la función de firma:

+(void)performGetRequestWithUrl:(NSString *)requestUrl completionHandler:(void (^)(NSDictionary *result, NSError *error))completionBlock 

Respuesta

24

cambio de una "respuesta negativa" a "retorno"

+0

Gracias Lástima, el mensaje de error en Xcode es confuso – flashsnake

+5

@flashsnake el mensaje de error que dice que está de paso.. un bloque que devuelve 'void *' a un parámetro que espera que un bloque devuelva 'void'. En C y Objective-C,' void * 'es el tipo de un puntero arbitrario;' nil' de hecho se define como 'void * (0)' por lo que cuando escribe 'return nil' el complier infiere que su tipo de devolución es' void * '. Mientras que si no tienes nada después de tu declaración 'return', o no' return', deduce un tipo de devolución de 'void', como lo espera el parámetro. –

Cuestiones relacionadas