Я переношу класс UIViewController
, чтобы немного поработать с Swift. Я успешно использую код Objective-C через заголовок моста, но мне нужно импортировать файл констант, содержащий директивы #define
.
Я видел в С помощью Swift с Cocoa и Objective-C (простые макросы):
Простые макросы
Если вы обычно использовали директиву
#define
для определения примитивной константы в C и Objective-C, в Swift вместо этого вы используете глобальную константу. Например, константное определение#define FADE_ANIMATION_DURATION 0.35
может быть лучше выражено в Swift с помощьюlet FADE_ANIMATION_DURATION = 0.35
. Поскольку простые константные макросы отображают непосредственно глобальные переменные Swift, компилятор автоматически импортирует простые макросы, определенные в исходных файлах C и Objective-C.
Итак, кажется, это возможно. Я импортировал файл, содержащий мои константы, в заголовок моста, но у меня нет видимости из моего файла .swift
, не может быть разрешено.
Что делать, чтобы мои константы были видимыми для Swift?
UPDATE:
Кажется, что работает с константами NSString
, но не с булевыми:
#define kSTRING_CONSTANT @"a_string_constant" // resolved from swift
#define kBOOL_CONSTANT YES // unresolved from swift