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]];