为什么.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