了解swift typealias

时间:2016-04-28 14:24:32

标签: swift photosframework

作为Photos框架的一部分,可以选择从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 {

        }

2 个答案:

答案 0 :(得分:3)

它在类PHImageRequestOptions中用作闭包,例如传递给requestImageForAsset:targetSize:contentMode:options:的{​​{1}}。

语法类似于

PHImageManager

文档说:

  

如果您请求的图像的数据不在本地设备上,那么您   已启用networkAccessAllowed属性下载,   照片会定期调用您的块以报告进度并允许   你取消下载。

nshipster

上有let finalRequestOptions = PHImageRequestOptions() finalRequestOptions.progressHandler = { (progress, error, stop, info) in // do something with the returned parameters } 的详细说明

答案 1 :(得分:2)

这意味着无论何时看到PHAssetImageProgressHandler,您都应该阅读以下内容:

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

这是一个闭包,它将元组(Double, NSError?, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]?)作为参数并返回Void

编辑:

这也意味着每当你想声明一个PHAssetImageProgressHandler时,你应该这样声明:

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