Как импортировать 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 {