Immer incompatible block Zeiger-Typen senden void *(^)
[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);
}];
Bin ich immer seltsame Fehler in diesem code. Es zeigt die Fehlermeldung "Erste incompatible block Zeiger-Typen senden void *(^)(NSDictionary *_strong, NSError *_strong) parameter vom Typ" void (^)(NSDictionary *_strong, NSError *_strong)'
Hier ist die Funktion Signatur:
+(void)performGetRequestWithUrl:(NSString *)requestUrl completionHandler:(void (^)(NSDictionary *result, NSError *error))completionBlock
InformationsquelleAutor flashsnake | 2012-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
ändern "return null" , "return"
die Fehlermeldung wird sagen, dass Sie auf der Durchreise sind einen block, gibt
void *
auf einen parameter, der erwartet, dass ein block der Rückkehrvoid
. In C und Objective-C,void *
ist der Typ für eine beliebige Zeiger;nil
ist in der Tat definiert werdenvoid *(0)
also, wenn Sie gebenreturn nil
die complier folgert Ihr zurück geben zuvoid *
. In der Erwägung, dass, wenn Sie nichts nach Ihremreturn
- Anweisung oder keinereturn
, folgert Sie einen Rückgabetypvoid
wie erwartet durch die parameter.InformationsquelleAutor Elden