Как импортировать SKTUtils в Objective-C?

Я пытаюсь импортировать SKTUtils - набор быстрых файлов - в проект Objective-C. Насколько я знаю, этого будет достаточно:

#import "ProjectName-Swift.h"

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

#import "Vector3-Swift.h"
#import "CGFloat+Extensions-Swift.h"
.... etcetera ....

Но без успеха. Я также установил на да опцию define modules внутри настройки сборки проекта, но ничего не поделаешь.

1 ответ

Я только что попытался импортировать SKTUtils в пустой проект Objective-C Xcode.

Похоже, вам не хватает следующей части требования для правильного соединения:

Вам необходимо импортировать ProjectName-Swift.h. Обратите внимание, что это имя проекта - другие ответы делают ошибку при использовании имени класса.

Этот единственный файл является автоматически сгенерированным заголовком, который определяет интерфейсы Objective C для всех классов Swift в вашем проекте , которые либо аннотированы @objc, либо наследуются от NSObject.

взято из Как импортировать код Swift в Objective-C.

Например, в моем тестовом проекте мой Project-Swift.h действительно содержит импорт расширений SKAUtils SKAction, потому что они являются классами SpriteKit на основе Objective-C, но некоторые другие вещи не являются дружественными для Objective-C, поэтому вы не можете получить к ним доступ, потому что они просто не генерируются в -Swift.h файл.

Другой пример - я начинаю видеть SKTAudio класс в моем коде Objective-C, если я сделаю его подклассом NSObject:

 @objc public class SKTAudio: NSObject {
Другие вопросы по тегам