属性 '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];
我正在开发一个需要识别颜色和其他内容的 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
.
从技术上讲,它适用于响应选择器 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];