1

http://www.codeproject.com/Tips/226892/How-to-implement-Stack-in-Object-Cで作成されたスタックを使用しましたが、これはすべてのオブジェクトを受け入れますが、実際にはそれを使用して保存しますenumタイプ。

私がそれに割り当てようとしたときenum、コンパイラはそれenumをに変換できないと言いましたid。私は何をすべきか?

4

1 に答える 1

4

スタックにNSObjectが格納されている場合は、列挙値を整数(整数)にキャストして、NSNumberにボックス化するだけです。

スタックへの追加:

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

スタックからの取得:

NSNumber *boxedValue = [stack pop];
MyEnum enumValue = (MyEnum) [boxedValue integerValue];
于 2012-05-28T20:15:25.787 に答える