了解 swift 类型别名

Understanding swift typealias

作为照片框架的一部分,有一个选项可以从 iCloud 下载照片(如果需要)。问题是我不懂怎么用。

文档说:

var progressHandler: PHAssetImageProgressHandler?

其中 PHAssetImageProgressHandler

照片从 iCloud 下载资产数据时调用的块的签名。由 progressHandler 使用 属性.

typealias PHAssetImageProgressHandler = (Double, NSError?, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]?) -> Void

但是我不知道如何整合它,有什么建议吗?

更新

我正在使用的请求

      var options: PHImageRequestOptions = PHImageRequestOptions()
      options.networkAccessAllowed = true
        options.progressHandler = PHAssetImageProgressHandler {

        }

这意味着每当你看到 PHAssetImageProgressHandler,你应该实际阅读以下内容:

(Double, NSError?, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]?) -> Void

这是一个以元组 (Double, NSError?, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]?) 作为参数的闭包,并且 returns Void

编辑:

这也意味着无论何时你想声明一个 PHAssetImageProgressHandler,你都应该这样声明:

 let handler : PHAssetImageProgressHandler = { (progress, error, stop, info) in 
   // your code
 }

它在 class PHImageRequestOptions 中用作闭包,例如传递给 PHImageManagerrequestImageForAsset:targetSize:contentMode:options:

语法看起来像

let finalRequestOptions = PHImageRequestOptions()
finalRequestOptions.progressHandler = { (progress, error, stop, info) in
  // do something with the returned parameters
}

文档说:

If you request an image whose data is not on the local device, and you have enabled downloading with the networkAccessAllowed property, Photos calls your block periodically to report progress and to allow you to cancel the download.

PHImageManagernshipster

上有很好的描述