在前向类对象“UIImage”中找不到属性“CGImage”

Posted

技术标签:

【中文标题】在前向类对象“UIImage”中找不到属性“CGImage”【英文标题】:Property 'CGImage' cannot be found in forward class object 'UIImage' 【发布时间】:2016-10-25 08:49:57 【问题描述】:

我收到此错误:

        self.contents = (id)_stillImage.CGImage;

_stillImage 是 UIImage,类是 CALayer

如何解决?

【问题讨论】:

为什么投成id 因为内容是 id 类型 你能写至少4到5行代码吗 你可能想写... = (id)(_stillImage.CGImage);,因为id没有CGImage这样的属性。 【参考方案1】:

就像image.CGImage 一样简单,其中image 是一个UIImage 对象。 您可以通过桥接将其进一步转换为类型 id。 但是在这里,您想将 UIImage 对象添加到图层。 所以只需使用此代码。

self.view.layer.contents = (__bridge id) myImage.CGImage 

如果您要对图层进行子类化,请使用。

self.contents = (__bridge id) myImage.CGImage

【讨论】:

【参考方案2】:

_stillImage 是属于QuartzCore frameworkCALayer,所以如果你没有添加或导入到你的项目中,那么它可能会导致你得到错误。

试试看,

如果您还没有添加QuartzCore framework,请将其添加到您的项目中。

那么,

#import <QuartzCore/QuartzCore.h>

将其导入您的viewController 文件。

希望这会有所帮助:)

【讨论】:

【参考方案3】:

原因是找不到UIImage.h,你只需要做的就是

#import <UIKit/UIKit.h>

【讨论】:

以上是关于在前向类对象“UIImage”中找不到属性“CGImage”的主要内容,如果未能解决你的问题,请参考以下文章

类成员的前向类声明

尝试使用前向类“NSManagedObjectModel”作为 Swift 类模型的超类

英特尔编译器不编译另一个类中的私有前向类声明

在 UIImage 类型的对象上找不到属性“中心”*

在转发类对象中找不到属性

在转发类中找不到属性