将 PHAsset 从 Gallery 复制到 iOS 9 中的其他目录

San*_*rar 2 objective-c deprecated ios swift ios9

我通过以下链接演示了如何将文件从 Gallery 复制到应用程序或其他目录(正确答案):

如何将 iOS 照片库 (ALAssetsLibrary) 中的图像文件复制到应用程序的本地目录?

但是对于 ALAssetsLibrary 类文档,Apple 表示它现在已从 iOS 9.0 开始弃用,而是使用照片框架。

自 iOS 9.0 起,资产库框架已弃用。相反,请改用照片框架,它在 iOS 8.0 及更高版本中提供更多功能和更好的性能来处理用户的照片库。有关更多信息,请参阅照片框架参考。

如何使用照片框架将资源从图库复制到其他 URL?

San*_*rar 6

这似乎相当容易。我为可能有帮助的人添加了一个示例代码:

    var item: PHAsset! // you update with actual PHAsset at runtime
    let docuPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.ApplicationDirectory, NSSearchPathDomainMask.UserDomainMask, true) as NSArray
    let targetImgeURL = (docuPath[0] as! String) + "/IMG_0005.JPG"
    let phManager = PHImageManager.defaultManager()
    let options = PHImageRequestOptions()
    options.synchronous = true; // do it if you want things running in background thread
    phManager.requestImageDataForAsset(item, options: options)
    {   imageData,dataUTI,orientation,info in

        if let newData:NSData = imageData
        {
            try! newData.writeToFile(targetImgeURL, atomically: true)
        }
    }
Run Code Online (Sandbox Code Playgroud)