3

ALAssetsLibrary は iOS 9 で非推奨になったため、新しい PHPhotoLibrary で ALAssetsLibrary->writeImageDataToSavedPhotosAlbum に似たメソッドを見つけることができません。GIF を保存できない可能性があります。おそらくこのコードを使用しています。

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
        PHAssetChangeRequest *assetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[UIImage imageWithData:gifdata]];
        placeholder = [assetRequest placeholderForCreatedAsset];
        photosAsset = [PHAsset fetchAssetsInAssetCollection:collection options:nil];
        PHAssetCollectionChangeRequest *albumChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:collection
                                                                                                                      assets:photosAsset];
        [albumChangeRequest addAssets:@[placeholder]];
    } completionHandler:^(BOOL success, NSError *error) {
        if (success)
        {

        }
        else
        {

            NSLog(@"%@", error);
        }
    }];
4

3 に答える 3

8

以前NSDataは gif 画像を保存していましたが、このALAssetsLibrary方法UIImageWriteToSavedPhotosAlbumは iOS8 で非推奨になりました。API によると、 PHAssetCreationRequestメソッドを使用[[PHAssetCreationRequest creationRequestForAsset] addResourceWithType:PHAssetResourceTypePhoto data:data options:options];してこの gif 画像データを保存できるため、url リクエストを使用して gif を保存することもできます。

コードは次のとおりです。

NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"gif"];
NSData *data = [NSData dataWithContentsOfFile:path];
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    PHAssetResourceCreationOptions *options = [[PHAssetResourceCreationOptions alloc] init];
    [[PHAssetCreationRequest creationRequestForAsset] addResourceWithType:PHAssetResourceTypePhoto data:data options:options];
} completionHandler:^(BOOL success, NSError * _Nullable error) {
    NSLog(@":%d",success);
}];
于 2016-11-02T06:31:31.807 に答える
1

一時ファイルを作成して使用することで問題を解決しました:

creationRequestForAssetFromImageAtFileURL

于 2016-02-13T02:16:09.980 に答える