2016-12-21 3 views
0

多分私はこれを考えたり、脳の痙攣を起こしているのです。構造体と同等か?これを行うための "スウィフト"方法はタタリアスですか?

typealias myZero = reallyLongAndObfuscatedEnum.ZERO 

のは、私はいくつかのレガシーコードを持っており、これはもちろん私が扱ってるものの非常に単純化したバージョンであるスウィフト3に変換する必要がありましょう。

私が使用することができます
ReallyLongEquation * reallyLongAndObfuscatedEnum.ZERO.cgfloat_t 

:代わりにタイピングの

enum reallyLongAndObfuscatedEnum { 

    ///zero 
    struct ZERO { 
    static let float_t:Float32 = Float32(0) 
    static let double_t:Float64 = Float64(0) 
    static let cgfloat_t:CGFloat = CGFloat(0) 
    static let desc:String  = "/* nothingness, nada, it is the void */" 
    } 
} 

ReallyLongEquation * myZero.cgfloat_t 

はこれを行うには、 "スウィフト" 方法typealiasですか?

答えて

2

あなたが探しているのはreallyLongAndObfuscatedEnum.ZEROの代わりの(より短い)名前であれば、はいtypealiasが行く方法です。

間違ったパスを導く危険があります(完全なコンテキストがないため)スウィフト列挙型のAssociated Valuesを参照することもできます。たとえば、列挙型を次のように書き換えることができます。

enum Example { 
    case Zero(float_t: 0.0f, double_t: 0.0, cgfloat_t: CGFloat(0)) 

    var description: String { 
     switch self { 
     case .Zero: 
      return "The Emptiness of Void" 
     } 
    } 
} 
関連する問題