PHImageManager正在发送重复的照片

时间:2018-10-14 11:52:43

标签: swift

我的代码如下。它正在发送重复的照片1)高品质和2)低品质。只想了解为什么这个库要这样做?

      PHImageManager.default().requestImage(for: asset, targetSize: size, contentMode: .aspectFit, options: nil) { result, info in
    guard let image = result else {
      return
    }

    self.sendPhoto(image)
  }

enter image description here

修正为强制选项发送质量

fileprivate func imageRequestOptions() -> PHImageRequestOptions {
    let requestOption = PHImageRequestOptions()
    requestOption.deliveryMode = .highQualityFormat
    return requestOption
}

PHImageManager.default().requestImage(for: asset, targetSize: size, contentMode: .aspectFit, options: self.imageRequestOptions()) { result, info in
            guard let image = result else {
                return
            }

            self.sendPhoto(image)
            print("sendPhoto iOS 11.0 * asset")
        }

1 个答案:

答案 0 :(得分:0)

摘自Apple文档

  

对于异步请求,Photos可能多次调用您的结果处理程序块。照片首先调用该块,以提供适合临时显示的低质量图像,同时准备高质量图像。 (如果立即可获得低质量的图像数据,则可能在方法返回之前进行第一次调用。)当高质量的图像准备就绪时,Photos会再次调用结果处理程序以提供该图像。如果图像管理器已经完全高质量地缓存了请求的图像,则Photos只会调用一次结果处理程序。结果处理程序的info参数中的PHImageResultIsDegradedKey键指示“照片”何时提供临时的低质量图像。   您可以对照片和视频资产使用此方法-对于视频资产,图像请求会提供缩略图或海报框。

也许这是他们的事。我想我们应该注意这种情况