我在swift 3中遇到了問題。我試圖在swift項目中使用頭文件。我跟着這個link。它生成了Bridging-Header.h文件,我可以導入另一個頭文件。但是,在swift文件中,我只調用宏常量,而不是函數。例如,頭文件Swift 3無法識別宏功能
#ifndef testHeader_h
#define testHeader_h
#if DEBUG
#define TEST_VALUE 111
#define TEST_STRING "Test string"
#endif
#if DEBUG
#define DLOG(fmt,...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA__ARGS__)
#else
#define DLOG(...)
#endif
#endif /* testHeader_h */
的.swift文件,
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var txtDisplay: UITextView!
@IBOutlet weak var btnPush: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func setTextView(_ sender: UIButton) {
// LogTrace("IN")
DLOG();
txtDisplay.text = TEST_STRING
}
}
正如你看到的,UI只有按鈕和TextView的。當我們按下按鈕時,它會在控制檯中寫入日誌並將文本置於textview中。但是,當我編譯,它獲得誤差
ViewController.swift:29:9: Use of unresolved identifier 'DLOG'
我不明白的是,當我在迅速文件中刪除線DLOG,它的工作原理,我可以得到宏觀TEST_STRING
。爲什麼它不識別宏功能DLOG?
哦,非常感謝!我知道了。所以,我只是將複雜的宏轉換成swift文件。 – GAVD