爲什麼.pch中的#define語句不能被.mm文件識別?#define在.mm文件中未識別的預編譯頭中
嘗試引用宏時導致「使用未聲明的標識符」和「未在此範圍內聲明」。
P溝道看起來是這樣的:
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iPhone SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif
#ifdef DEBUG
#define dNSLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#else
#define dNSLog(format, ...)
#endif
你可以編輯你的問題,粘貼你的.pch文件的內容? – 2011-04-15 23:59:06
乍一看,你的前綴頭文件看起來沒問題,但是我在'#ifdef __OBJC__'裏面放了'#ifdef DEBUG',因爲你使用'NSString',我假設'dNSLog )'是給你錯誤的宏,你能檢查有問題的.mm文件的預處理器輸出,看看是否使用了前綴頭文件嗎?另外,是否有問題的.mm文件被正確添加到使用的目標中你的前綴頭部? – 2011-04-16 00:50:41
感謝您的幫助! – gmcerveny 2011-04-18 20:03:58