gpt4 book ai didi

ios - 在 iOS 中如何使用 NS_ENUM?

转载 作者:行者123 更新时间:2023-11-29 10:37:38 26 4
gpt4 key购买 nike

我知道以前有人问过这样的问题。我查看了网上的示例,但不知道如何在我的代码中使用 NS_ENUM。我有一个错误代码列表。为了管理它们,我想使用 NS_ENUM。我创建了一个类,其中包含应用程序的所有公共(public)常量。我想在这里定义我的枚举并在应用程序的任何地方使用它。

我在 .h 文件中的代码:

typedef NS_ENUM(NSInteger, wsErrEnum); 

在我的 .m 文件中:

typedef NS_ENUM(NSInteger, wsErrEnum) {
ERR_NONE = 0,
ERR_HOST_TIMEOUT = 1
};

我认为我可以通过以下方式检查:

if(result.ErrCode == wsErrEnum.ERR_NONE) {
// do stuff ...
}

,但 ERR_NONE 作为属性不可见。

所以我的问题是在这种情况下如何定义和使用NS_ENUM

编辑:

使用

if(result.ErrCode == ERR_NONE) {
NSLog(@"It is OK!");
}

给我 ERR_NONEundefined 的错误。

编辑 2:

我明白这个问题。我在我的 .h 文件中声明了 NS_ENUM(正如一些评论和答案所暗示的那样),错误消失了。我之前尝试过这个,但在那种情况下我没有正确使用枚举 - 我使用的是 wsErrEnum.ERR_NONE。 10 倍的帮助。

附言我的类(class)是 .m 文件中的 #imported,我试图在其中进行比较。

最佳答案

这里唯一的问题是您已经在 .m 文件中声明了枚举的值。

您应该在 .h 文件中声明整个枚举(包括值)。通过在 .h 文件中声明枚举类型 wsErrNum 并在 .m 文件中声明值,您已经隐藏了所有其他类的值。

因此,在您的 .h 文件中:

typedef NS_ENUM(NSInteger, wsErrEnum) {
ERR_NONE = 0,
ERR_HOST_TIMEOUT = 1
};

无需在您的 .m 文件中声明此枚举。

关于ios - 在 iOS 中如何使用 NS_ENUM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121041/

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