首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pch文件中?

在pch文件中?
EN

Stack Overflow用户
提问于 2013-01-18 17:14:03
回答 1查看 1K关注 0票数 2

我有带有以下代码的pch-文件:

代码语言:javascript
复制
#import "ServerModel.h"

enum {
    SAVE = 1,
    REMOVE = 2,
    REMOVE_ALL = 3
};
typedef NSInteger RequestType;

我试图在ServerModel.h中使用RequestType,但是编译器对我的枚举一无所知。我试图为我的枚举创建头文件,并在pch-文件中导入这个文件,但是没有什么改变。

因此,基本的问题是:我不能在文件中使用来自.pch文件的枚举,这是在这个pch文件中编辑的#import文件。

有什么办法解决这个问题吗?pch档案是放置枚举的好地方吗?

UPD:

我试着把所有这些枚举放在一个头文件中,然后在pch-文件中的所有#import文件的末尾放置这个文件,但是它不起作用。但后来我把

#import "Enums.h" // my file with enums

在pch文件的开头,在所有其他#import之前,它已经开始工作了.

如果有人能解释#import在其他#import之前或之后的位置上的差异,我会很高兴的。

UPD2:

我会尽量让它更清楚:

我有Enums.h和enum:

代码语言:javascript
复制
enum {
    SAVE = 1,
    REMOVE = 2,
    REMOVE_ALL = 3
};
typedef NSInteger RequestType;

MyProject-Prefix.pch,包括:

代码语言:javascript
复制
#import "ServerModel.h"
#import "Enum.h"

以及具有以下代码的ServerModel.h

代码语言:javascript
复制
- (void)unlinkAccountWithRequestType:(RequestType)requestType;

我得到了一个错误:这个方法的Expected a type。我已经清理了我的项目,并得到了同样的错误。

当我像这样切换#import时:

代码语言:javascript
复制
#import "Enums.h"
#import "ServerModel.h"

一切都很好

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-21 10:16:29

Case1 :如果您像这样导入,

代码语言:javascript
复制
#import "ServerModel.h"
#import "Enums.h"

然后编译器将在ServerModel.h文件遇到#import "ServerModel.h"语句之前检查它。在检查ServerModel.h时,它找到了一个token RequestType,它说WTF是RequestType??,并向您脸上抛出错误。

案例2:如果您编写以下内容,则为

代码语言:javascript
复制
#import "Enums.h"
#import "ServerModel.h"

然后编译器成功地编译Enums.h,然后编译ServerModel.h,然后再找到一个token RequestType,并说是的,我知道这是在Enums.h中定义的typedef of NSInteger。最后,它快乐地向前移动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14404088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档