我使用了http://www.codeproject.com/Tips/226892/How-to-implement-Stack-in-Object-C创建的堆栈,它将接受任何对象,但我实际上想用它来存储enum
类型。
当我尝试为其分配enum
时,编译器表示enum
无法转换为id
。我该怎么办?
答案 0 :(得分:4)
如果您的堆栈存储NSObjects,您只需将枚举值转换为整数(它们是)并将它们装入NSNumber:
添加到堆栈:
NSNumber *boxedValue = [NSNumber numberWithInteger:eMyEnumValue];
[stack push:boxedValue];
从堆栈中检索:
NSNumber *boxedValue = [stack pop];
MyEnum enumValue = (MyEnum) [boxedValue integerValue];