2015-04-13 3 views
0

Я пытаюсь добавить выбранные изображения из массива ALAssetsLibrary, но они копируют изображения не движется в другую библиотеку ..добавить выбранные изображения в ALAssetsLibrary

Как я перейти в другую библиотеку любую идею, пожалуйста?

мой код здесь:

ALAssetsLibrary* lib = [ALAssetsLibrary new]; 
for (int i=0; i<self.deletegalleryImages.count; i++) { 
    UIImage *image = [self.deletegalleryImages objectAtIndex:i]; 
    [lib writeImageToSavedPhotosAlbum:image.CGImage metadata:@{} completionBlock:^(NSURL *assetURL, NSError *error) { 
     NSLog(@"Write image %@ to asset library. (Error %@)", assetURL, error); 
    }]; 
} 

ответ

0

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/Reference/reference.html

Этот код ошибки соответствует постоянной NSFileReadUnsupportedSchemeError - я. е. вы не можете просто использовать URL-адрес assets-library: // для перемещения файла с помощью NSFileManager. (То же самое относится и к ipod-library: // URL.) Чтобы получить данные файла, вы должны использовать AssetsLibrary framework, а затем записать его в файл, используя - [NSData writeToFile:atomically:].

ALAssetsLibrary *lib = [ALAssetsLibrary new]; 
[lib assetForUrl:theURL // the asset URL you have obtained, NSURL object 
    resultBlock:^(ALAsset *asset) { 
     // get data 
     ALAssetRepresentation *repr = [asset defaultRepresentation]; 
     CGImageRef cgImg = [repr fullResolutionImage]; 
     NSString *fname = [repr fileName]; 
     UIImage *img = [UIImage imageWithCGImage:cgImg]; 
     NSData *data = UIImagePNGRepresentation(img); 
     [data writeToFile:[@"BaseDirectory/" stringByAppendingPathComponent:fname] 
      atomically:YES]; 
     [lib release]; 
    } 
    failureBlock:^(NSError *error) { 
     // recover from error, then 
     [lib release]; 
    }]; 
+0

я не хочу писать изображения снова, я просто хочу, чтобы сохранить в assetsLibrary ... – Farid

+0

как мы извлечь изображения из библиотеки фотографий и сохранить в массиве, ту же процедуру, я хочу, чтобы извлечь изображения из массива и сохранить в assetsLibrary, но не писать изображения ... – Farid

+0

это правильно, но моя точка здесь, код, который я даю, дублирует изображение, не переходящее в другую библиотеку ... и я не хочу дублировать изображение ... – Farid