gpt4 book ai didi

ios - pch 文件中的枚举?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:34 24 4
gpt4 key购买 nike

我有包含这段代码的 pch 文件:

#import "ServerModel.h"

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

我正在尝试在 ServerModel.h 中使用 RequestType,但编译器对我的枚举一无所知。我尝试为我的枚举创建头文件并将此文件导入 pch 文件,但没有任何改变。

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

有什么办法可以解决这个问题吗? pch 文件是放置枚举的好地方吗?

更新:

我试图将所有这些枚举放在一个头文件中,并将 #import 这个文件放在 pch 文件中所有 #import 的末尾,但它没有工作。但后来我把

#import "Enums.h"//我的枚举文件

在 pch 文件的开头,在所有其他 #import 之前并且它正在工作。

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

UPD2:

我会尽量让它更清楚:

我有带有枚举的 Enums.h:

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

MyProject-Prefix.pch 具有:

#import "ServerModel.h"
#import "Enum.h"

ServerModel.h,代码如下:

- (void)unlinkAccountWithRequestType:(RequestType)requestType;

我在这个方法上收到一个错误:Expected a type。我清理了我的项目并遇到了同样的错误。

当我像这样切换 #import 时:

#import "Enums.h"
#import "ServerModel.h"

一切都很好

最佳答案

Case1 :如果你这样导入

#import "ServerModel.h"
#import "Enums.h"

当编译器遇到#import "ServerModel.h" 语句时,它会在Enums.h 之前检查ServerModel.h 文件。在检查 ServerModel.h 时,它发现了一个 token RequestType 并说 WTF is RequestType?? 并抛出错误在你的脸上。

情况2:如果你这样写

#import "Enums.h"
#import "ServerModel.h"

然后编译器成功编译Enums.h,然后编译ServerModel.h,再次找到token RequestType 并说是的,我知道这是在 Enums.h 中定义的 NSIntegertypedef。最后它快乐地继续前进。

关于ios - pch 文件中的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com