Нет типа или протокола с именем 'AVCaptureVideoDataOutputSampleBufferDelegate' в заголовочном файле -Swift.h - PullRequest
0 голосов
/ 27 января 2019

У меня есть проект Objective-C, в котором я использую сценарии Swift среди сценариев Obj-C.

В одном из сценариев Swift у меня есть класс:

@objc public class VideoCapture: NSObject, AVCaptureVideoDataOutputSampleBufferDelegate {
~~bunch of functions~~
}

Поскольку это проект Obj-C, я добавил к нему @obj, чтобы они появились в моем ($ project_name-Swift.h) заголовочный файл.

Я получаю сообщение об ошибке для того, что написано в моем заголовочном файле:

// фрагмент из заголовочного файла: имя_проекта-Swift.h

 #import <AVFoundation/AVFoundation.h>.  <— I added this to make sure that AVFoundation is present in the header file

SWIFT_CLASS("_TtC17FLIROneSDKExample12VideoCapture")
@interface VideoCapture : NSObject <AVCaptureVideoDataOutputSampleBufferDelegate>   <<——!!! error: No type or protocol named 'AVCaptureVideoDataOutputSampleBufferDelegate'
- (void)captureOutput:(AVCaptureOutput * _Nonnull)output didOutputSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer fromConnection:(AVCaptureConnection * _Nonnull)connection;
- (void)captureOutput:(AVCaptureOutput * _Nonnull)output didDropSampleBuffer:(CMSampleBufferRef _Nonnull)sampleBuffer fromConnection:(AVCaptureConnection * _Nonnull)connection;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

Я не понимаючто вызывает это, и я предполагаю, что это связано с невозможностью доступа к библиотеке AVFoundation из заголовочного файла или чего-то еще.

Есть идеи, чтобы решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Попробуйте использовать @objcMembers поверх вашего быстрого импортированного класса, это обеспечит вам доступ ко всему коду Objective-C.

0 голосов
/ 27 января 2019

Скорее всего, вам нужно добавить @protocol для AVCaptureVideoDataOutputSampleBufferDelegate.

@protocol AVCaptureVideoDataOutputSampleBufferDelegate;

. Поместите это чуть выше @interface в ваш файл project_name-Swift.h.

...