Ошибки при попытке использовать класс CIKernel CoreImage / QuartzCore на iOS - PullRequest
1 голос
/ 16 февраля 2012

Привет, я пытаюсь использовать 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

1 Ответ

2 голосов
/ 16 февраля 2012

Вы не импортировали заголовок, в котором определен интерфейс для CIKernel. В поиске документации для разработчиков Apple я не могу найти ссылку на класс CIKernel для iOS. Это говорит о том, что класс CIKernel недоступен в iOS.

В Xcode нажмите CIKernel в исходном файле, чтобы поместить туда текстовый курсор, затем откройте правый столбец (также известный как «Утилиты») окна Xcode и выберите вкладку инспектора быстрой помощи. Если выбранный класс доступен для iOS, вы должны увидеть документацию по классу и ссылку на то, какой заголовочный файл объявляет его. Когда я пытаюсь сделать это с классом CIKernel, выбранным в проекте iOS, я просто получаю «Нет быстрой справки».

...