0

UITable ビューの構築のために、多次元配列を単一次元配列に割り当てようとしています。配列を手動で追加するにはデータの読み込みが非常に負担になるため、時間を節約するためにループを使用することにしました。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    NSString *responseString1 = [[NSString alloc] initWithData:responseData1 encoding:NSUTF8StringEncoding];

    NSLog(@"%@",responseString1);

    SBJsonParser *parser = [[SBJsonParser alloc] init];
    id sample = [parser objectWithString:responseString1];

    for (int i = 0; i < [sample count]; i++) {
        [tableData addObject:[[sample objectAtIndex:i]objectAtIndex:1]];
        NSLog(@"%@",[sample objectAtIndex:i]);
        NSLog(@"%@",[tableData objectAtIndex:i]);
    }


    [alert dismissWithClickedButtonIndex:0 animated:YES];
}

'sample' の NSLog はデータを反映しますが、'tableData' の NSLog は NULL を反映します。

事前にサンクス

4

3 に答える 3

1

tableDataが空であると仮定してNSMutableArray、使用するだけです

[tableData addObject:[[sample objectAtIndex:i]objectAtIndex:0]];

構築するtableDataのではなく、実際に変更したい場合は、

[tableData replaceObjectAtIndex:i withObject:[[sample objectAtIndex:i]objectAtIndex:0]];
于 2013-03-25T14:05:58.140 に答える
0

NSMutableArray はid myArray[5];のような静的な c 配列ではなく、c++veсtor<NSObject *>に似ているため、 を使用して要素を配置することはできません。[tableData objectAtIndex:i] = ...そのメソッドを使用する必要があります[tableData addObject:...](要素を配列の最後に配置する) または[tableData insertObject:... atIndex:i];

于 2013-03-25T14:05:38.010 に答える
0

あなたがしようとしていることは、次のように翻訳するのが最適です。

[tableData replaceObjectAtIndex:i withObject:[[sample objectAtIndex:i]objectAtIndex:0]];
于 2013-03-25T14:06:06.707 に答える