您好我正在尝试使用CIKernel
类
我不明白为什么我会一直收到这些错误:
AdriansFilter.m:23:29:错误:类消息的接收者'CIKernel'是前向声明[4]
AdriansFilter.m:23:28:{23:28-23:62}:错误:没有已知的选择器'kernelsWithString的类方法:'[4]
我尝试过导入QuartzCore框架,但它仍然无效。我被困了,因为我真的无法确定这里真正的问题。有人可以帮帮我吗?
我的h文件如下所示:
#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>
@interface AdriansFilter: CIFilter
{
CIImage *inputImage;
CIColor *inputColor;
NSNumber *inputDistance;
NSNumber *inputSlope;
}
@end
我的m文件看起来像这样
#import "AdriansFilter.h"
@implementation AdriansFilter
static CIKernel *hazeRemovalKernel = nil;
- (id)init
{
if(hazeRemovalKernel == nil)
{
NSBundle *bundle = [NSBundle bundleForClass: [self class]];
NSString *code = [NSString stringWithContentsOfFile: [bundle
pathForResource: @"MyHazeRemoval"
ofType: @"cikernel"]];
NSArray *kernels = [CIKernel kernelsWithString: code];
hazeRemovalKernel = [kernels objectAtIndex:0];
}
return [super init];
}
@end
答案 0 :(得分:2)
您尚未导入定义CIKernel接口的标头。通过搜索Apple developer documentation,我找不到iOS的CIKernel类引用。这告诉我,iOS上没有CIKernel类。
在Xcode中,单击源文件中的CIKernel将文本光标放在那里,然后打开Xcode窗口的右列(也称为Utilities),然后选择快速帮助检查器选项卡。如果所选的类可用于iOS,您应该看到该类的文档以及对哪个头文件声明它的引用。当我尝试在iOS项目中选择的CIKernel类时,我得到“没有快速帮助”。