2016-10-20 13 views
0

クリーナーまたはが短く以下のように記述されていますか?スウィフトネストされた列挙型共通タイプ

protocol AProtocol {} 

enum AnEnum { 
enum NestedEnum1: AProtocol { 
    case A1, B1 
    } 

    enum NestedEnum2: AProtocol { 
    case A2, B2 
    } 
} 

func makeItRain(_ rain: AProtocol) 

夢はただ、次の書き込みになります -

func makeItRain(_ rain: AnEnum) 

- それは、入力として(彼らはAProtocolに適合しなくても)NestedEnum1NestedEnum2を受け入れるだろう。

答えて

0
enum AnEnum { 
    enum NestedEnum1 { 
     case A1, B1 
    } 

    enum NestedEnum2 { 
     case A2, B2 
    } 

    case nestedEnum1(NestedEnum1) 
    case nestedEnum2(NestedEnum2) 
} 

、あなたが.nestedEnum1nestedEnum2例で切り替えるあなたmakeItRain FUNCインチ

// AnEnum thoの場合は、AnEnum.NestedEnum1AnEnum.NestedEnum2を入れてください。