とここAnyHashableを列挙して鋳造サポートしない単純な場合の例であるSwfit.AnyHashableケーシングされていないと思われます。(!として?,限り)適切に列挙
enum testEnum: String {
case Test
}
let myObject: AnyHashable = testEnum.Test as AnyHashable
let newObject = myObject as? testEnum
この場合、newObjectはnilを返します。代わりにキャストした場合
let newObject = (myObject as? AnyObject) as? testEnum
キャストしても問題ありません。
私は構造体、カスタムクラスと文字列でこれを試してみましたが、それらはすべて適切にキャスト。たとえば、これは動作します。
let myObject: AnyHashable = "Test" as AnyHashable
let newObject = myObject as? String
これは迅速なバグですか、私はちょうどここでこれを正しく実行していませんか?
Iがスイフト3.2スイフト4に
「AnyHashable」ではなく「Any」を使用する必要があります。 btw大文字で始まるあなたのエニュームの名前をスウィフトコンベンションとし、小文字で始まるケース –