私はswift 3のマクロに問題があります。私は迅速なプロジェクトでヘッダーファイルを使用しようとしました。私はこれに続いたlink。 Bridging-Header.hファイルが生成され、別のヘッダーファイルをインポートできます。しかし、迅速なファイルでは、私は関数だけでなく、マクロ定数を呼び出します。例えば、ヘッダファイル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を持っています。ボタンを押すと、コンソールにログが書き込まれ、テキストがテキストビューに表示されます。私は、コンパイル時にしかし、それはエラーに
ViewController.swift:29:9: Use of unresolved identifier 'DLOG'
を取得し、私は迅速なファイルの行DLOGを削除したとき、それが動作する、ことを理解していないと私はマクロTEST_STRING
を得ることができます。マクロ機能DLOGを認識しないのはなぜですか?ドキュメントから
ああ、多くの感謝!わかった。ですから、複雑なマクロを迅速に転送するだけです。 – GAVD