如何知道PHAsset是否已被修改?

Tom*_*Bąk 6 objective-c photos ios photokit

更具体地说,您如何知道PHAsset当前版本的标的资产是否与原始资产不同?

我的用户只需要在必要时在当前或原始资产之间进行选择.然后我需要他们的回答PHImageRequestOptions.version.

Jor*_*n H 8

我找到了一种方法来确定 a 是否PHAsset已被编辑。使用PHAssetResourceAPI,您可以获得给定资产的数据资源数组。如果照片被修改过,它至少会有一个资源,即编辑的调整数据。

let adjustmentResources = PHAssetResource.assetResources(for: asset).filter { $0.type == .adjustmentData }
if adjustmentResources.count > 0 {
    //photo has been edited
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您想实际使用资源文件,则必须使用PHAssetResourceManagerAPI获取其数据。另请注意,此方法会立即返回 - 与此处的其他答案不同,无需等待异步网络请求。