use*_*578 20 iphone objective-c nsdictionary ios
如何将枚举值保存到字典?
当我尝试以下
enum someEnum
{
field0 = 0,
field1 = 1,
field2 = 2,
};
enum someEnum someEnumObject;
Run Code Online (Sandbox Code Playgroud)
我试着用它将它保存到字典中
[NSDictionary dictionaryWithObjectsAndKeys:]
someEnumObject, @"enum",
Run Code Online (Sandbox Code Playgroud)
我明白了
警告:语义问题:不兼容的整数到指针转换将'枚举行为'发送到'id'类型的参数
Emp*_*ack 49
使用以下命令将其保存到字典中,
[NSNumber numberWithInt:enumValue], @"enum",
Run Code Online (Sandbox Code Playgroud)
你可以检索它,
enumValue = [[dictionary valueForKey:@"enum"] intValue];
Run Code Online (Sandbox Code Playgroud)
jar*_*ora 10
最好使用NSNumber文字将枚举转换为对象,以便它可以存储在NSDictionary中:
[NSDictionary dictionaryWithObjectsAndKeys:@(someEnumObject), @"enum", nil];
Run Code Online (Sandbox Code Playgroud)
文字提供写东西的缩写,这个字典可以写成:
@{@"enum":@(someEnumObject)};
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多关于文字的内容:http: //clang.llvm.org/docs/ObjectiveCLiterals.html
An enum本质上是一个整数并NSDictionary存储对象,因此您需要将枚举转换为对象.一个NSNumber适合这个:
[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:someEnumObject], @"enum", nil];
Run Code Online (Sandbox Code Playgroud)