Objective-CからSwiftに移行するときに困るのが#defineで定義されたマクロです。
Bridging-Headerでimportしても、定数の定義はそのまま使用できますが、メソッドの定義は使用できません。
Swiftで直接使用できないのなら、Objective-Cを介して使えば良いです。
マクロ呼び出し用のメソッドを持つクラスを作成して、そのメソッドを使えば簡単です。

import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 定数は使える
print("DEFINE = %@", MSG_AAA)
// メソッドは使えない
//xLog("123")
// マクロ呼び出し用クラスで使用
Class1.aLog("ABC")
Class1.aLog(MSG_AAA)
// インスタンスメソッドでもOK
let c1 = Class1()
c1.bLog("999")
}
}
#import "Header1.h" #import "Class1.h"
#ifndef Header1_h #define Header1_h #define MSG_AAA @"AAA" #define xLog(msg) NSLog(@" xLog = [ %@ ]", msg) #endif /* Header1_h */
@interface Class1 : NSObject + (void)aLog:(NSString*)message; - (void)bLog:(NSString*)message; @end
#import "Class1.h"
#import "Header1.h"
@implementation Class1
+ (void)aLog:(NSString*)message {
NSLog(@"NSLog = [ %@ ]", message);
xLog(message);
}
- (void)bLog:(NSString*)message {
NSLog(@"NSLog = [ %@ ]", message);
xLog(message);
}
@end