XCode无法在*prefix.pch中找到#define宏,但编译正常。

3
我在-prefix.pch文件中添加了一些内容,但是当我使用它时,XCode会报错,显示“使用未定义的标识符...”。然而,如果我编译它(Command+B),它确实可以编译,所以我认为这可能是由派生数据引起的。我尝试删除派生数据(从而强制重新生成),但是在组织者中没有项目的派生数据,我还尝试过清理,但是没有效果。有人能帮忙吗?编辑:我定义的宏对问题不重要,但是这是宏的内容:
#define IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

编辑 2:我向项目中添加了 Kiwi 作为单元测试工具,可能是项目设置中的某些更改导致了问题。


你能否编辑你的问题并包含你试图添加的具体宏? - Andrew
2个回答

1

as bbum 说

呃……不要在.pch文件中放置宏!按定义,.pch文件是一个特定于项目的预编译头文件。它确实不应该在项目上下文之外使用,也不应该包含除#include和#import之外的任何内容1

也许这会有所帮助


0
You will need to include inly framework related headers and also adding header in pch file means you need not import that header in any of the file in your project.
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif

是的,我做了那个。如果你在pch文件中定义了#define MYNUM 0,然后在其他地方使用MYNUM,XCode会告诉我找不到MYNUM,但是当我编译时,它可以工作并且应用程序运行。 - hzxu
1
创建一个名为commonmacros.h的.h文件,并在其中添加您的宏,然后只需在您使用的类中导入该commonmacros.h头文件。 - NHS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接