- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道以前有人问过这样的问题。我查看了网上的示例,但不知道如何在我的代码中使用 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_NONE
是 undefined
的错误。
编辑 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/
我想使用 NS_ENUM。我已在 .m 文件中编写了以下代码。现在,当我的 cellForRowAtIndexPath 被调用时。我得到了索引路径。现在对应于该索引路径,我想提取与其关联的字符串。例如
我正在使用 spiffy new NS_ENUM 尝试在我的 objective-c iOS 项目中定义枚举。 我在类的 header 中声明 NS_ENUM,如下所示: NS_ENUM(int, S
我在所有三个 enum 上收到错误 function definition is not allowed here。我最近更新到 Xcode 6.0.1,现在收到该错误。我该如何解决这个错误,我应该避
示例 .h 文件: @interface MyClass : NSObject typedef NS_ENUM(int, myType) { Something, SomethingE
我有一个枚举,它在 constant.h 文件 ( Objective-C ) 中 typedef NS_ENUM (NSInteger, EEFieldType) { EEFieldTypeHi
Objective C 提供了几种声明枚举的方法。它可以通过 typedef enum 或 NS_ENUM 声明。 NS_ENUM 宏以类型名作为参数,我没有完全理解它的意思。我没有在 Apple 官
注意:这不是this question的骗局。 . 我正在尝试使用名为 GBCli 的库在 swift .它是用 Objective-C 编写的。我在使用特定枚举时遇到问题: /** Various
我有一个NS_Enum: typedef NS_ENUM(NSInteger, Months) { January, February, March, April,
我知道以前有人问过这样的问题。我查看了网上的示例,但不知道如何在我的代码中使用 NS_ENUM。我有一个错误代码列表。为了管理它们,我想使用 NS_ENUM。我创建了一个类,其中包含应用程序的所有公共
我遇到了奇怪的行为。我曾经有: @property (nonatomic) ApplicationState applicationState; 直接在我的应用程序类中。现在它被提取到协议(proto
我在 iOS 应用程序中使用 typedef NS_ENUM,但出现此错误:“链接器命令失败,退出代码为 1”。通常这很容易修复,但这次我找不到解决方案... 这是我的 NS_Enum: typede
是否有一种优雅的方法来获取 NS_ENUM 中的项目总数?最大值呢? 一些例子: typedef NS_ENUM(NSInteger, MyEnum) { MyEnumA = 0, M
我在 Xcode5 中使用 clang 预处理了以下代码。 typedef NS_ENUM(NSInteger, MyStyle) { MyStyleDefault, MyStyleC
我创建了一个这样的枚举 typedef NS_ENUM(NSInteger, PermissionStages) { thePermissionNotDetermine = 0, th
我在 EnumsHeader.h 中创建了一个 Objective-C 枚举文件并将其导入 -Bridging-Header.h #import "EnumsHeader.h" .我能够在 Swift
我正在尝试创建一个匹配 typedef enum 和 typedef NS_ENUM 声明的 OCLint 规则,但收效甚微。我有一个 Objective-C 文件 (TestClass.m),其中包
在 Objective-C 中创建具有特定类型的枚举的正确方法是什么? NS_ENUM 和 NS_OPTIONS 是如何工作的? NS_OPTIONS 用于 mask ,例如 NSAutoresizi
我不想强制我的用户更新到 iOS 6,因此我想找到一种方法来使用带有自定义类型和枚举的 NSCoder。 我找到了 this article这解释了最近引入的 NS_ENUM 宏,它基本上使运行时库更
我正在使用 Swift 3 和 xcode 8。我是 objective-C 的新手,也是 swift 的新手,所以这可能是个白痴问题。但是这里开始了! 我正在从 objective-C 过渡到 sw
我有一个 Objective-C 文件,其中的枚举定义如下: typedef NS_ENUM(NSInteger, State) { State_ACTIVE = 0, State_PENDI
我是一名优秀的程序员,十分优秀!