Я пытаюсь создать класс Objc со свойством типа enum, в котором тип enum создается в swift. После этого я хочу использовать класс Objc в Swift.
(Swift) Enum:
import Foundation
@objc enum AffectsUnit:Int {
case time
case person
case group
}
(ObjC) класс
#import "JSONModel.h"
#import "MyApp-Swift.h"
@interface AddPlayerToTime : JSONModel
@property (nonatomic) AffectsUnit affectsUnit;
@end
В классе Objc есть пустой файл метода.
Пока все хорошо. Нет предупреждений компилятора.
Поскольку я также хочу использовать свой класс objc в Swift. Мне нужно импортировать класс в мой Bridging-Header.h.
#import "AddPlayerToTime.h"
Теперь мой быстрый код может видеть класс AddPlayerToTime, но проект больше не будет компилироваться. Я получаю ошибку:
Unknown type name 'AffectsUnit'
Я на 99% уверен, что он сломался из-за циклической ссылки. Поскольку мой swift-код импортирует класс AddPlayerToTime, а AddPlayerToTime импортирует мой swift-код. Но я не знаю, как это исправить. Кажется, что все посты в этом циркулярном справочном материале предлагают использовать объявление @class. Но поскольку я пытаюсь сослаться на перечисление, а не на класс, для меня это не решение.
Пытаюсь ли я сделать что-то, чего нельзя сделать просто?
Edit1:
Обратите внимание: я хочу, чтобы как можно больше кода оставалось на стороне Swift.