I am migrating a UIViewController
class to train a bit with Swift. I am successfully using Objective-C code via the bridging header but I have the need of importing a constants file that contains #define
directives.
I have seen in Using Swift with Cocoa and Objective-C (Simple macros) the following:
Simple Macros
Where you typically used the
#define
directive to define a primitive constant in C and Objective-C, in Swift you use a global constant instead. For example, the constant definition#define FADE_ANIMATION_DURATION 0.35
can be better expressed in Swift withlet FADE_ANIMATION_DURATION = 0.35
. Because simple constant-like macros map directly to Swift global variables, the compiler automatically imports simple macros defined in C and Objective-C source files.
So, it seems it's possible. I have imported the file containing my constants into the bridging header, but I have no visibility from my .swift
file, cannot be resolved.
What should I do to make my constants visible to Swift?
UPDATE:
It seems working with NSString
constants, but not with booleans:
#define kSTRING_CONSTANT @"a_string_constant" // resolved from swift
#define kBOOL_CONSTANT YES // unresolved from swift