将枚举值保存到字典中

发布于 2024-11-19 12:37:35 字数 399 浏览 0 评论 0原文

如何将枚举值保存到字典中?

当我尝试以下操作

enum someEnum
{
    field0 = 0,
    field1 = 1,
    field2 = 2,
};

enum someEnum someEnumObject;

并尝试使用将其保存到字典中

[NSDictionary 字典WithObjectsAndKeys:]

someEnumObject, @"enum", 

我明白了

警告:语义问题:整数到指针转换不兼容,将“枚举行为”发送到“id”类型的参数

How does one save an enum value to a dictionary?

When I try the following

enum someEnum
{
    field0 = 0,
    field1 = 1,
    field2 = 2,
};

enum someEnum someEnumObject;

and I try to save it to a dictionary using

[NSDictionary dictionaryWithObjectsAndKeys:]

someEnumObject, @"enum", 

I get this

warning: Semantic Issue: Incompatible integer to pointer conversion sending 'enum behaviour' to parameter of type 'id'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

安静 2024-11-26 12:37:35

使用以下命令将其保存到字典中,

[NSNumber numberWithInt:enumValue], @"enum",

您可以将其检索为,

enumValue = [[dictionary valueForKey:@"enum"] intValue];

Use the following to save it to dictionary,

[NSNumber numberWithInt:enumValue], @"enum",

And you can retrieve it as,

enumValue = [[dictionary valueForKey:@"enum"] intValue];
两相知 2024-11-26 12:37:35

最好使用 NSNumber 文字将枚举转换为对象,以便可以将其存储在 NSDictionary 中:

[NSDictionary dictionaryWithObjectsAndKeys:@(someEnumObject), @"enum", nil];

文字提供了编写内容的简写,该字典可以这样编写:

@{@"enum":@(someEnumObject)};

在此处阅读有关文字的更多信息:
http://clang.llvm.org/docs/ObjectiveCLiterals.html

Better use NSNumber literals to convert an enum to an object so that it can be stored in NSDictionary:

[NSDictionary dictionaryWithObjectsAndKeys:@(someEnumObject), @"enum", nil];

Literals provide shorthands to write stuff, this dictionary can be written like:

@{@"enum":@(someEnumObject)};

Read more about literals here:
http://clang.llvm.org/docs/ObjectiveCLiterals.html

誰ツ都不明白 2024-11-26 12:37:35

enum 本质上是一个整数,而 NSDictionary 存储对象,因此您需要将枚举转换为对象。 NSNumber 可以很好地解决这个问题:

[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:someEnumObject], @"enum", nil];

An enum is essentially an integer and an NSDictionary stores objects, so you need to convert your enum to an object. An NSNumber would work well for this:

[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:someEnumObject], @"enum", nil];
死开点丶别碍眼 2024-11-26 12:37:35

在现代,@(enumValue) 是更简单的方法。

In modern times @(enumValue) is the easier approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文