Улучшения языка Swift
... Перечисления Swift теперь можно экспортировать в Objective-C с помощью @objc
приписывать. Перечисления @objc должны объявлять целочисленный тип raw и не могут быть
общие или использовать связанные значения. Поскольку перечисления Objective C не
в пространстве имен регистр перечислений импортируется в Objective-C как
объединение имен enum и case.
выше Замечания к выпуску Xcode 6.4
Для этого вы определяете значения в Objective-C, вы можете использовать макрос NS_TYPED_ENUM
для импорта констант в Swift
Например:
.h файл
typedef NSString *const ProgrammingLanguage NS_TYPED_ENUM;
FOUNDATION_EXPORT ProgrammingLanguage ProgrammingLanguageSwift;
FOUNDATION_EXPORT ProgrammingLanguage ProgrammingLanguageObjectiveC;
.m файл
ProgrammingLanguage ProgrammingLanguageSwift = "Swift";
ProgrammingLanguage ProgrammingLanguageObjectiveC = "ObjectiveC";
В Swift это импортируется как структура как таковая:
struct ProgrammingLanguage: RawRepresentable, Equatable, Hashable {
typealias RawValue = String
init(rawValue: RawValue)
var rawValue: RawValue { get }
static var swift: ProgrammingLanguage { get }
static var objectiveC: ProgrammingLanguage { get }
}
Несмотря на то, что тип не является мостовым, как перечисление, он очень похож на тип при использовании его в коде Swift.
Подробнее об этом методе вы можете прочитать в " Взаимодействие с C APIs " Использование Swift с Какао и документации Objective-C