1

我正在尝试从 PHAsset 请求完整图像。

我的代码如下

@IBAction func nextTap(sender: AnyObject)
    {
        for asset in _selectedAssets
        {
            PHImageManager.defaultManager().requestImageDataForAsset(asset, options: nil)
            {
                imageData,dataUTI,orientation,info in
                {
                    println("worked")
                }
            }
        }
    }

我收到了这个错误:

在此处输入图像描述

我已阅读有关此调用的文档(https://developer.apple.com/library/IOs/documentation/Photos/Reference/PHImageManager_Class/index.html#//apple_ref/occ/instm/PHImageManager/requestImageDataForAsset:options:resultHandler :)

我认为,我已经遵循了所需的尾随语法闭包,并输入了适当的参数。

我也观看了 WWDC 2014 视频。

似乎无法使其适用于完整图像。

如果我想要一个更小尺寸的图像,我使用了这个代码:

PHImageManager.defaultManager().requestImageForAsset(asset, targetSize:_cellSize, contentMode: .AspectFill, options: nil)
        {
            result, info in
            if reuseCount == cell.reuseCount
            {
                cell.imageView.image = result
                cell.imageView.frame = CGRectMake(0, 0,self._cellSize.width,self._cellSize.height)
            }
        }

这有效。

所以我不确定我在第一次通话中做错了什么,但希望了解如何从 PHAsset 请求全尺寸图像和/或我在第一个代码块中的语法有什么问题。

谢谢

更新:这是错误消息

“不能使用参数列表类型‘(PHAsset, options:NilLiteralConvertible, (($T6, ($T6,$T7,$T8,($T6,$T7,$T8)... 。”

4

2 回答 2

0

事实证明,在“in”把所有东西都搞砸之后,括号就出来了。

删除这些括号解决了问题

for asset in _selectedAssets
        {
            PHImageManager.defaultManager().requestImageDataForAsset(asset, options: nil)
            {
                imageData,dataUTI,orientation,info in
                println("worked")
            }
        }
于 2014-10-29T18:07:17.513 回答
0

这对我有用:

PHImageManager.defaultManager().requestImageDataForAsset(asset, options: requestOptions) {
    (imageData: NSData!, dataUTI: String!, orientation: UIImageOrientation, info: [NSObject : AnyObject]!) -> Void in
    println("Yay!")
}
于 2015-02-26T14:46:25.877 回答