使用swift 3在函数处理程序中返回值

时间:2016-12-18 08:19:14

标签: swift closures completionhandler

我想写一个swift 3函数,它从照片中读取exif数据(PHAsset)。我正在使用requestImageData调用。即使我将isSynchronous选项设置为true,此调用似乎也不是同步的。

我想要做的是从处理程序块返回一个值。此代码不起作用,因为我的返回不在函数体中。此返回位于处理程序中。

如何使此功能同步并返回属性字典?

func read_exif(photo:PHAsset) -> [String:Any] {
    let manager = PHImageManager.default()
    let options = PHImageRequestOptions()
    options.isSynchronous = true
    manager.requestImageData(for: photo, options: options) { (result, string, orientation, info) -> Void in
        let img:CIImage = CIImage(data:result!)!
        return img.properties
    }
}

0 个答案:

没有答案