0

NSArray に多数のオブジェクトがあります。NSArray のそれぞれに 6 つの要素を持つ NSMutableArray の NSMutableArray を再構築したいと考えています。どうすればいいですか?

私のコードを編集:

NSArray *newsList = [mynode6 findChildTags:@"td"]; //result of site parsing
NSMutableArray *someArray = [[NSMutableArray alloc] init];
int i=0;
for (HTMLNode *news in newsList) { 
    [someArray addObject:[newsList objectAtIndex:news];
    i++;
    if (i==5) {
        i=0;
        [self.valueArray addObject:someArray];
        [someArray removeAllObjects];
    }
}

valueArray私のメインのNSMutableArrayです。このコードは機能しませんvalueArray。空です。

4

4 に答える 4

1

この行を理解できませんでした。objectAtIndexがNSIntegerをパラメータとして受け取るため、この行は意味がありません。その配列にHTMLNode要素を追加しようとしていると思います。

[someArray addObject:[newsList objectAtIndex:news];

だから、私はあなたがこのように上記の行を置き換える必要があると思います。

[someArray addObject:news];

いくつかの変更を加えてコードスニペットを編集し、ロジックをプラグインしました(ロジックを説明するためにいくつかのダミーオブジェクトを含む新しいnewsList配列を作成しました)。

編集したコードは次のとおりです

NSArray *newsList = [NSArray arrayWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"A",@"B",@"C",@"D",@"E",@"F", nil];
    NSMutableArray *valueArray = [[NSMutableArray alloc] init];
    NSMutableArray *someArray = [[NSMutableArray alloc] init];

    int i=0;
    for (NSString *news in newsList) { 
    [someArray addObject:news];
     i++;
     if (i==6) {
         i=0;
         [valueArray addObject:someArray];
         NSLog(@"%@",someArray);
         [someArray release];
         someArray = [NSMutableArray new]; 
     }
     }

NSLog(@"%@",valueArray);

これが端末からの出力です。 ここに画像の説明を入力してください

お役に立てば幸いです!! よく読んでください!

于 2012-07-03T04:40:21.033 に答える
1

同様のことをした後、空の配列で非常によく似た問題が発生しました。配列を追加する時点で、次のようにします。

[self.valueArray addObject:[NSMutableArray arrayWithArray:someArray]];

これは私のために働いた!someArray への参照を追加してから、すべてのオブジェクトを削除して空にするためです。arrayWithArray を追加すると、データのコピーが作成されるため、一方の行を削除すると、もう一方の行が残ります。:)

プラズマ

于 2012-05-30T22:22:33.190 に答える