Я использую следующий код, чтобы попытаться сохранить новый образ на PHAssetCollection
, в частности, Фотопленка (ака библиотека пользователя):Сохранить UIImage в PHAssetCollection
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest *assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
PHFetchResult *fetchResult = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil];
PHAssetCollection *assetCollection = fetchResult[0];
if (assetCollection) {
PHAssetCollectionChangeRequest *assetCollectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
[assetCollectionChangeRequest addAssets:@[[assetChangeRequest placeholderForCreatedAsset]]];
}
} completionHandler:^(BOOL success, NSError *error) {
if (!success) {
NSLog(@"Error creating asset: %@", error);
}
}];
Я всегда получаю сообщение об ошибке.
Все объекты в выполнение блока выглядят отлично:
(lldb) po image
<UIImage: 0x174289ec0>, {1080, 1466}
(lldb) po assetCollection
<PHAssetCollection: 0x1741d5540> F6705124-D49B-4FDC-9191-7E84CFCCD148/L0/040 Camera Roll assetCollectionType=2/209
(lldb) po assetCollectionChangeRequest
<PHAssetCollectionChangeRequest: 0x170264640> title=(null) hasAssetChanges=1
И сообщение об ошибке довольно бесполезно:
The operation couldn’t be completed. (Cocoa error -1.)
Как я могу успешно сохранить свой новый образ в библиотеке пользователя? Благодарю.
Спасибо, матовый. Меня смутило http://stackoverflow.com/questions/26065774/which-phassetcollection-to-use-for-saving-an-image – mkc842
Да, но это _question_. У него проблемы, потому что он делает это неправильно - точно так же, как вы. _answer_ - это то, что вы хотите посмотреть: http://stackoverflow.com/a/26915282/341994 На самом деле, вот откуда я получил свой ответ! (Конечно, я это проверял сам). – matt