1

NSURLから取得した配列をforループを使用して配列に追加しようとしています。

(int i = 0; i < 10; i++) 

2次元配列にします。NSRangeExceptionでエラーが発生し続けます。index [0]でのinsertObjectまたはaddObjectのみが可能であり、「i」が1に増加すると、エラーがスローされます。これは、追加ではなく上書きすることを意味するだけなので、2回目に上書きしてi = 1の場合、エラーがスローされます。初期化された2次元配列を上書きする代わりに、さらに追加するにはどうすればよいですか?

- (void)qBlock{
    for (int i = 0; i < 10; i++) {
        NSURL *url = [NSURL URLWithString:@"http://somefiles.php"];
        NSError *error;
        NSStringEncoding encoding;
        NSString *response = [[NSString alloc] initWithContentsOfURL:url 
                                                        usedEncoding:&encoding 
                                                               error:&error];
        if (response) {

            const char *convert = [response UTF8String];
            NSString *responseString = [NSString stringWithUTF8String:convert];
            NSMutableArray *sample = [responseString JSONValue];

            block = [[NSMutableArray alloc]init];
        [block insertObject:sample atIndex:i];
        }


    else {
        UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"ALERT" message:@"Internet Connection cannot be established." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert1 show];
    }
}
//Calling 10 blocks of codes
for (id obj in block) {
    NSLog(@"%@",obj);
}
4

1 に答える 1

1

これ:

        block = [[NSMutableArray alloc]init];
    [block insertObject:sample atIndex:i];

forループを介した各反復で、ブロック配列全体を空の配列に置き換えています。

ブロック配列の初期化を for ループの外に移動します。

于 2012-05-03T20:25:04.667 に答える