2017-04-18 24 views
0

ここに私のカスタマイズされたNSLogがあります。## __使用時のXcodeコンパイラエラーVA_ARGS__

#define NSLog(fmt, ...) printf("%s,%d\n %s\n\n", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:fmt, ##__VA_ARGS__].UTF8String) 

このログは別のプロジェクトではうまくいきますが、現在のプロジェクトでコンパイル時に4つのエラーが発生しました。 #define NSLog(...) NSLog(__VA_ARGS__)のように__VA_ARGS__を使用している場合は、正常にコンパイルされます。私はおそらくBuilding Settingで起こったと思います。

error 1

error 2

error 3

error 4

それは、誰もがこの問題を解決するために私を助けるためにどんな考えを持っています。

答えて

2

これを宣言するヘッダーファイルがFoundationをインポートすることを確認します。 NSLogを他の場所でも定義していないことを確認してください。最後にNSLogを再定義するのは良い考えではありません。それ以外の場合は、のコンパイルを汚染しますヘッダ

#define MELog(fmt, ...) NSLog("%s,%d\n %s\ .... 
+1

'NSLog'は常にフレームワーク(システム)の後に含まれなければならないだろう上書きヘッダー:あなたはおそらく、ロギングフレームワークを採用するかのように自分自身を定義する方がいいでしょうフレームワーク。いくつかのフレームワークはCで書かれており、 '[NSString stringWithFormat]'はそこでは動作しません。それはエラーメッセージを説明します。 – Sulthan

+0

ありがとう、たくさん学ぶ! – ovo

関連する問題