【问题标题】:Swift equivalent for UIImage with CGImage?UIImage 与 CGImage 的 Swift 等价物?
【发布时间】:2015-03-12 20:27:25
【问题描述】:

以下表达式的 Swift 等效项是什么?

@property (strong, nonatomic) NSMutableArray *assets;

cell.imageView.image = [UIImage imageWithCGImage:[[self.assets objectAtIndex:indexPath.row] thumbnail]];

我试过了:

private var assets: [AnyObject]

cell.imageView.image = UIImage(CGImage: self.assets[indexPath.row].thumbnail())

但这给出了错误:

Missing argument for parameter 'inBundle' in call

编辑:self.assets 具有来自以下表达式的对象:

ALAssetsGroupEnumerationResultsBlock assetsEnumerationBlock = ^(ALAsset *result, NSUInteger index, BOOL *stop) {

        if (result) {
            [self.assets insertObject:result atIndex:0];
        }

    };

【问题讨论】:

  • self.assets中的对象是什么?
  • @matt 查看我的编辑。希望对您有所帮助。

标签: ios objective-c iphone swift uiimage


【解决方案1】:

像这样声明属性:

var assets: [ALAsset]

然后,在一些方法的实际代码中:

let thumb = self.assets[indexPath.row].thumbnail().takeUnretainedValue()
cell.imageView.image = UIImage(CGImage:thumb)

在属性声明中,我向编译器揭示了这实际上是一个数组。否则,它不知道thumbnail() 是一个真正的方法,也不知道它返回的是什么东西。

在实际代码的第一行中,我正在处理 AssetLibrary 框架没有内存管理信息的事实;除非您以某种方式解决此问题,否则您无法继续使用 Swift。

所以,到下一行,我们得到了一个实际的 CGImage,可以继续使用它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 2016-03-21
  • 2014-07-23
  • 2014-11-23
  • 2021-07-17
相关资源
最近更新 更多