属性 'CGImage' 未在 'MyClass *' 类型的对象上找到

Property 'CGImage' not found on object of type 'MyClass *'

我正在开发一个需要识别颜色和其他内容的 iOS 应用程序。 我得到了这个代码:

- (UIColor *)averageColor {

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char rgba[4];
CGContextRef context = CGBitmapContextCreate(rgba, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

CGContextDrawImage(context, CGRectMake(0, 0, 1, 1), self.CGImage);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);  

if(rgba[3] > 0) {
    CGFloat alpha = ((CGFloat)rgba[3])/255.0;
    CGFloat multiplier = alpha/255.0;
    return [UIColor colorWithRed:((CGFloat)rgba[0])*multiplier
                           green:((CGFloat)rgba[1])*multiplier
                            blue:((CGFloat)rgba[2])*multiplier
                           alpha:alpha];
}
else {
    return [UIColor colorWithRed:((CGFloat)rgba[0])/255.0
                           green:((CGFloat)rgba[1])/255.0
                            blue:((CGFloat)rgba[2])/255.0
                           alpha:((CGFloat)rgba[3])/255.0];
}
}

来自这个人:Link

99% 完美,除了这一行:

    CGContextDrawImage(context, CGRectMake(0, 0, 1, 1), self.CGImage);

其中我收到以下错误消息:

Property 'CGImage' not found on object of type 'MyClass *'

据我所知,CGImage 是 CoreImage 框架的一部分,它已正确添加到项目中,并且(我相信如此)正确导入到 class 中。查看我的进口商品。

#import "MyClass.h"
#import "TiUtils.h"
#import "TiViewProxy.h"
#import <TitaniumKit/TiBlob.h>
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
#import <CoreImage/CIImage.h>

请问,有什么问题吗?我该怎么做才能使错误消失? 提前致谢!

该代码(很可能)是 UIImage.

上的一个类别(在 Swift 命名法 'extension' 中)

从技术上讲,它适用于响应选择器 CGImage 的任何内容。

完整的声明应该是这样的:

UIImage + ColorHelp.h

@interface UIImage (ColorHelp)

- (UIColor *)averageColor;

@end 

UIImage + ColorHelp.m

@implementation UIImage (ColorHelp)

- (UIColor *)averageColor {
   //stuff
}

@end 

在 Xcode 中创建一个新的“Objective-C 文件”以在 UIImage 上创建一个模板类别。

Fromm UIImage 的所有实例都会响应平均颜色。例如

UIImage *myImage = <something>;
UIColor *averageColor = [myImage averageColor];