2012-05-28 134 views
1

我已經使用在http://www.codeproject.com/Tips/226892/How-to-implement-Stack-in-Object-C創建的堆棧,它將接受任何對象,但我實際上想用它來存儲enum類型。創建一個處理枚舉類型的堆棧?

當我試圖分配一個enum它時,編譯器說enum不能轉換爲id。我該怎麼辦?

+0

枚舉類型是什麼?如果它是int,你可以把它包裝在一個NSNumber中。 – Pfitz

+0

我創建了一個用於表示方程部分的標記類型。如NUMBER,BRACKET_LEFT – Newyo

回答

4

如果你的堆棧存儲NSObjects你可以簡單地把枚舉值的整數(他們是),並在一個NSNumber盒子裏:

添加到堆棧:

NSNumber *boxedValue = [NSNumber numberWithInteger:eMyEnumValue]; 
[stack push:boxedValue]; 

從堆棧中檢索:

​​
+0

哦,我真的很蠢!!!!!!!!!! – Newyo

+0

那......這是一個有效的問題。現在你永遠不會忘記。 :-) – Heiberg

+0

謝謝你,否則我會困惑整整一週。 – Newyo