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);

}];

このコードで奇妙なエラーが発生しています。「void*(^)(NSDictionary * _strong、NSError * _strong)をタイプ'void(^)(NSDictionary * _strong、NSError * _strong)'のパラメーターに送信する互換性のないブロックポインタータイプを取得しています」というエラーメッセージが表示されます。

関数のシグネチャは次のとおりです。

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

1 に答える 1

25

「return nil」を「return」に変更

于 2012-09-23T03:47:31.303 に答える