Использование Objective C #import и наследование

С помощью метода toBlob () все работает. Вот код работы:

public capture() {
    const ctx = this.canvas.nativeElement.getContext('2d');
    ctx.drawImage(this.video.nativeElement, 0, 0, this.video.nativeElement.width, this.video.nativeElement.height);
    this.canvas.nativeElement.toBlob((result) => {
      this.img = result;
      console.log(this.img);
      this.detectFace(this.img);
      this.detectSkinColor(this.img);

    });
}
5
задан Brian Tompsett - 汤莱恩 12 July 2016 в 16:53
поделиться

1 ответ

Это кажется, что у Вас есть круговая проблема зависимости. Для разрешения его, да, каждый файл реализации (.m) потребности к #import надлежащий заголовочный файл. Однако, при попытке иметь заголовочные файлы #import друг друга, Вы столкнетесь с проблемами.

Для использования наследования необходимо знать размер суперкласса, что означает, что Вы должны #import это. Для других вещей, тем не менее, таких как членские переменные, которые являются указателями или методами, которые берут в качестве параметра или возвращают другой тип, Вам на самом деле не нужно определение класса, таким образом, можно использовать ссылку вперед для разрешения ошибок компилятора.

// bar.h
@class A;  // forward declaration of class A -- do not to #import it here

@interface bar : UIViewController
{
    A *member;  // ok
}

- (A) method:(A)parameter;  // also ok
@end

// bar.m
#import "bar.h"
#import "A.h"

// can now use bar & A without any errors or warnings
12
ответ дан 13 December 2019 в 05:43
поделиться