0

私はこの方法を使用しています:

- (void)reload:(id)sender {
    mutableImagenes=[[NSMutableArray alloc]init];
     NSMutableArray *arrayImagenes=[[NSMutableArray alloc] init];
    [Inicio ConexionInicio:^(NSArray *imagenesArray, NSError *error) {
        if (error) {
            [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error localizedDescription] delegate:nil cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"OK", nil), nil] show];
        } else {
            _ArrayInicio = imagenesArray;
            for(Inicio *i in _ArrayInicio){
                [mutableImagenes addObject:i];
            }
        }
    }];
}

それは正常に動作しますが、2 回目までは正常に動作します。つまり、「Inicio ConexionInicio:...」に行く最初のデバッグ時に落ちる、つまり、私は を呼び出す[reload:nil]のでViewDidLoad、その後すぐにその配列が必要になります。 reload」が読み込まれますが、それは起こりませんViewDidLoad。reload は終了するまで配列を返しConexionInicioます。

+ (void)ConexionInicio:(void (^)(NSArray *imagenesArray, NSError *error))block {
    [[APIClient sharedClient] getPath:@"/WebConnection/ServletInicioJSON" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) {
        NSArray *imagenesFromResponse = [JSON valueForKeyPath:@"Inicio"];
        NSMutableArray *mutableImagenes = [NSMutableArray arrayWithCapacity:[imagenesFromResponse count]];
        for (NSDictionary *attributes in imagenesFromResponse) {
            Inicio *i = [[Inicio alloc] initWithAttributes:attributes];
            [mutableImagenes addObject:i];
        }

        if (block) {
            block([NSArray arrayWithArray:mutableImagenes], nil);
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        if (block) {
            block([NSArray array], error);
        }
    }];
}

初めてロードして失敗し[[APIClient sharedClient] getPath:@"/WebConnection/ServletInicioJSON" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON)]、終了します

4

0 に答える 0