UIImageWriteToSavedPhotosAlbum сохраняет только 5 изображений из 10. Почему? - PullRequest
2 голосов
/ 23 мая 2011

У меня проблема с заголовком.Существуют ли какие-либо ограничения, такие как «Экспортировать только 3 изображения в секунду» или что-то в этом роде?

        for (int frameStepper = 0; frameStepper < [Something frameCount]; frameStepper++)
        {
            //Get the filename.
            imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"frame_%i.jpg", frameStepper]];

            //Read image.
            UIImage *image = [[[UIImage alloc] initWithContentsOfFile:imagePath] autorelease];

            //Write image.
            UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
        }

У меня есть 5 изображений, экспортированных из 10 после этого кода.Не могу понять почему.Пожалуйста, помогите, большое спасибо.

Ответы [ 2 ]

3 голосов
/ 13 мая 2014

Вариант этого помог мне: http://iphoneincubator.com/blog/tag/uiimagewritetosavedphotosalbum

{
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum: didFinishSavingWithError: contextInfo:), nil);

}


- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
    if (error) {
        [self tryWriteAgain:image];
    }
}

-(void)tryWriteAgain:(UIImage *)image
{
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(imageSavedToPhotosAlbum: didFinishSavingWithError: contextInfo:), nil);
}
2 голосов
/ 23 мая 2011

Если я регистрирую ошибку завершения, он говорит:

Error Domain=ALAssetsLibraryErrorDomain Code=-3301 "Write busy" UserInfo=0x69e8e20 {NSLocalizedFailureReason=There was a problem writing this asset because the writing resources are busy., NSLocalizedRecoverySuggestion=Try to write again, NSLocalizedDescription=Write busy}

Это означает, что я должен ждать завершения запущенных процессов путем реализации данного обратного вызова:

- (void)               image: (UIImage *) image
    didFinishSavingWithError: (NSError *) error
                 contextInfo: (void *) contextInfo

Hurray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...