従来の C スタイル#error
キーワードの迅速な置換とは何ですか?
事前定義が失敗したときにコンパイル時エラーを発生させるために必要です。
#if CONFIG1
...
#elseif CONFIG2
...
#else
#error "CONFIG not defined"
#endif
従来の C スタイル#error
キーワードの迅速な置換とは何ですか?
事前定義が失敗したときにコンパイル時エラーを発生させるために必要です。
#if CONFIG1
...
#elseif CONFIG2
...
#else
#error "CONFIG not defined"
#endif
ドキュメントによると、特定の #error マクロはありません。ただし、コンパイルからプログラムを作成することは可能です。
これを行う方法は、使用する変数を #if/#endif 句内で定義することです。一致する句がない場合、変数は未定義になり、プログラムはコンパイルされません。
回避策により、障害サイトでエラーを発生させることができます。#else 句にプレーンな文字列を入力すると、構文エラーが発生します。を使用@available
すると、コンパイラの警告が生成されます。
#if CONFIG1
let config = // Create config 1
#elseif CONFIG2
let config = // Create config 2
#else
// Compilation fails due to config variable undefined errors elsewhere in the program.
// Explicit syntax error to describe the scenario.
Config not specified.
// This generates a compiler warning.
@available(iOS, deprecated=1.0, message="Config not defined")
#endif
// Use config here, e.g.
let foo = config["fooSize"]