1

NSMutableArray を別の NSMutableArray に追加しています。問題は、最初の配列のすべてのオブジェクトが同じであることです (長さサイズの内容など)。配列に配列を追加すると、最初の配列は単純に2番目の配列へのポインターを保持すると推測していますが、一意の配列を保持するにはどうすればよいですか? 追加時にarrayWithArrayを使用する必要があると考えていますが、構文がわかりません。

私の NSDictionary には多数のオブジェクトが含まれており、各オブジェクトには多数の画像 URL があり、それをダウンロードします。

これまでの私のコード。

for (NSDictionary *obj in MyDictList)
{
    [tempImageArray removeAllObjects];

    for(NSString *tempImageURL in obj[@"images"])
    {
        tempImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:tempImageURL]]];
        NSLog(@"Download Extra Image : %@, %i", tempImageURL, [UIImagePNGRepresentation(tempImage) length]);
        [tempImageArray addObject:tempImage];
    }

    NSLog(@"Number of pics fo this event : %i", [tempImageArray count]);

    // Add the array of images to the array
    [eventImages addObject:tempImageArray];
}

これをログに記録します (異なる場合は各画像の URL とサイズを確認できます)。

Download Extra Image : http://.....A...Correct...URL/file.jpg, 69516
Download Extra Image : http://.....A...Correct...URL/file.jpg, 63263
Number of pics fo this event : 2
Download Extra Image : http://.....A...Correct...URL/file.jpg, 69516
Download Extra Image : http://.....A...Correct...URL/file.jpg, 64545
Number of pics fo this event : 2
Download Extra Image : http://.....A...Correct...URL/file.jpg, 56541
Download Extra Image : http://.....A...Correct...URL/file.jpg, 69144
Download Extra Image : http://.....A...Correct...URL/file.jpg, 51585
Number of pics fo this event : 3
Download Extra Image : http://.....A...Correct...URL/file.jpg, 56813
Download Extra Image : http://.....A...Correct...URL/file.jpg, 33869
Number of pics fo this event : 2

次に、それらを循環すると、最後の配列のコピーが 4 つ取得されます (つまり、2 つの写真のみ)。

Number of image in this Event at Row : 2, 0
Number of image in this Event at Row : 2, 1
Number of image in this Event at Row : 2, 2
Number of image in this Event at Row : 2, 3

編集助けてくれてありがとう、正しい方向に微調整し、最後の行を読むように変更しました。

[eventImages addObject:[NSArray arrayWithArray:tempImageArray]];
4

2 に答える 2

0

それで、あなたはそれらを組み合わせたいですか?次のように実行できます。

NSMutableArray *m1 = [[NSMutableArray alloc] initWithObjects:@"1", @"2", nil];
NSMutableArray *m2 = [[NSMutableArray alloc] initWithObjects:@"3", @"4", nil];

for (id obj in m2)
    [m1 addObject:obj];

(これがあなたの問題かどうかはわかりません)

于 2013-07-05T12:51:50.020 に答える