照片错误是什么意思:无法获取 assetsd XPC 代理

What does the Photos error mean: Unable to obtain assetsd XPC proxy

我的 iOS 应用程序允许用户编辑和保存图像和视频。已编辑的媒体通过调用 PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL:) 等保存在 PHPhotoLibraryperformChanges 块中。

这些调用经常失败,错误代码为 41002(域:com.apple.photos.error)。它的 localizedDescription 是:

Unable to obtain assetsd XPC proxy for getPhotoKitServiceWithReply:. assetsd could have crashed

错误是什么意思?我试图从描述中搜索错误代码、域和关键字,但找不到任何东西。这个域中的错误是否有官方参考?我应该向用户显示什么错误消息?

一位 Apple 工程师向我提供了以下解释:

该应用无法与辅助应用(即照片库)通信。 assetsd 可能崩溃的最常见原因是前台应用程序正在使用大量内存(或分配内存非常快),系统决定终止 assetsd 以减轻部分内存压力。

为防止这些错误,您应该确保您的应用没有触发高内存压力情况。

这应该只是暂时的问题。换句话说,如果您稍后尝试提交相同的请求,它可能会起作用(假设已经解决了任何高内存压力情况)。因此,我建议您将失败的请求排队,稍后尝试提交,并以某种方式通知您的用户,以便他们知道保存尚未完成。

同样的问题也会导致代码 4099、域 NSCocoaErrorDomain 和描述出错:

Couldn’t communicate with a helper application.