PHAssetResourceManager writeData返回错误1

问题描述 投票:0回答:1

我正在尝试使用原始文件名共享PHAssetResource。此方法将资产资源保存到临时目录并从中共享。从iOS 13开始,这一直显示错误:

let tempDirectory = NSTemporaryDirectory() as NSString
let partialPath = tempDirectory.appendingPathComponent(sentAssetResource.originalFilename)
let fileURL = URL(fileURLWithPath: partialPath)

let options = PHAssetResourceRequestOptions()
options.isNetworkAccessAllowed = true


PHAssetResourceManager.default().writeData(for: sentAssetResource, toFile: fileURL, options: options, completionHandler: { (error) in

    if (error != nil) {

        print (error?.localizedDescription)
        return
    }

    DispatchQueue.main.async {
        let activityViewController = UIActivityViewController(activityItems: [fileURL],  applicationActivities: nil)

        activityViewController.completionWithItemsHandler = {
            (activity, success, items, error) in

            if FileManager.default.fileExists(atPath: fileURL.path) {
                try? FileManager.default.removeItem(atPath: fileURL.path)
            }
        }

        self.present(activityViewController, animated: true, completion: {


        })
    }
})

收到的错误是:

The operation couldn't be completed.
(PHPhotosErrorDomain error -1.)

这里可能有什么问题?

我必须切换到PHAssetResourceManager.default().requestData,但是此共享没有正确的文件名。

ios swift xcode photo phasset
1个回答
0
投票

在我的测试中,该方法在iOS 13.2上运行良好。该方法可能会因数据库错误而失败(iOS照片库是CoreData数据库,而AssetResources是单独的表)。您可以在模拟器以及所有测试设备中重现该问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.