Я пишу приложение, которое займет несколько изображений из URL, превратит их в UIImage, а затем добавит их в библиотеку фотографий, а затем в пользовательский альбом. Я не думаю, что его можно добавить в альбом, не имея их в Camera Roll, поэтому я принимаю его как невозможное (но было бы идеально, если это возможно).Сохранение нескольких изображений быстро в iOS 6 (пользовательский альбом)
Моя проблема в том, что я использую код от this site, и он действительно работает, но как только он имеет дело с большими фотографиями, он возвращает несколько слов «Write Busy». Я успешно получил их все, чтобы сохранить, если я скопирую функцию внутри своего собственного кода завершения, а затем снова внутри следующего и так далее до 6 (наиболее я видел, что это было 3-4, но я не знаю размер изображения, и я мог бы получить некоторые действительно большие) - это привело к тому, что они не все были включены в пользовательский альбом, поскольку они ошибались на этом этапе, и не было никакого блока, чтобы заставить его повторять ,
Я понимаю, что фактическое сохранение изображения перемещается в фоновый поток (хотя я специально не устанавливаю это), так как мой код возвращается, как и все, до появления ошибок, но в идеале мне нужно ставить в очередь изображения, которые нужно сохранить на одном фоновом потоке, чтобы они происходили синхронно, но не замораживали пользовательский интерфейс.
Мой код выглядит следующим образом:
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:singleImage]]];
[self.library saveImage:image toAlbum:@"Test Album" withCompletionBlock:^(NSError *error) {
if (error!=nil) {
NSLog(@"Error");
}
}];
Я удалил повторение кода в противном случае образец кода будет очень долго! Ранее существовал код NSLog.
Для моего тестового образца я имею дело с 25 изображениями, но это может быть легко 200 или около того, и может быть очень высоким разрешением, поэтому мне нужно что-то, что может надежно делать это снова и снова, не пропуская несколько изображений.
благодаря Роб
Спасибо за ответ, к сожалению, я не знаком с семафорами, но я прочитаю их, поскольку они выглядят весьма полезными. Я только начал неделю назад! –
Это хорошая ссылка, я думаю, http://mikeash.com/pyblog/friday-qa-2009-09-25-gcd-practicum.html, но она немного продвинута. – Ultrakorne