繁体   English   中英

如何在iOS9中使用PHPhotolibrary使用metadat将照片保存在相册中?

[英]how to save photo in album with metadat using PHPhotolibrary in iOS9?

我已编写以下代码将照片保存在相册中。 在iOS8中可以正常工作,但在iOS9中则无法工作。

PHPhotoLibrary.sharedPhotoLibrary().performChanges({

        let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(newImage!)

        let assetPlaceholder = assetRequest.placeholderForCreatedAsset

        let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: album, assets: albumFetch)

        albumChangeRequest!.addAssets([assetPlaceholder!])

        }, completionHandler: { success, error in

            print("added image to album")

            print(error)



    })

我得到了错误

“错误域= NSCocoaErrorDomain”

在iOS9中。

请给我一些建议以解决此问题。

这是我如何实现的未经测试的示例:

var assetPlaceholder:PHObjectPlaceholder!
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
    if #available(iOS 9.0, *) {
        let newcreation:PHAssetCreationRequest = PHAssetCreationRequest.creationRequestForAsset()    
        newcreation.addResourceWithType(PHAssetResourceType.Photo, data:UIImageJPEGRepresentation(image, 1)!, options: nil)    
        assetPlaceholder = newcreation.placeholderForCreatedAsset
    } else { // < ios 9
        // Fallback on earlier versions
        let assetChangeRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image)    
        assetPlaceholder = assetChangeRequest.placeholderForCreatedAsset     
    }
    let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: assetCollection)
    albumChangeRequest!.addAssets([assetPlaceholder])
}, completionHandler: {(success:Bool, error:NSError?) in
    print("added image to album")
    print(error)
})

我这样做的部分原因是,我需要使用仅在ios 9中可用的功能,但已从本示例中删除了该功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM