2017-07-05 12 views
0

この種類の列挙型を使用するのは、関連付けられた値の型を持つ列挙型です。オブジェクトの型に応じてswitchステートメントを作成する必要があります。列挙型:私は置く代わりに???する何見当がつかないスウィフトスイッチのクラスenumのクラス

if let anObject = object as? TypeEnum { 

    switch anObject { 
    case .foo(???): 
    return true 
    ... 
    default: 
     return false 
    } 

} 

:私のオブジェクトがタイプTypeEnumの変数を持っている

enum TypeEnum { 
    case foo(FooClass) 
    case doo(DooClass) 
    case roo(RooClass) 
} 

は、今私が列挙型であるオブジェクトの種類を確認する必要があります。 Xcodeは何かを入れるように指示しますが、私は.fooに切り替えたいだけです。

アイデア?あなたがちょうどそれらを気にしない場合すべて

switch anObject { 
case .foo(let fooObj): 
    ... 
} 

・オア・ナッシング:

あなたが使用することができ
switch anObject { 
case .foo: 
    ... 
} 
+0

trueとfalse以外に何かが返されていますか?答えが "いいえ"ならば、私はあなたのクラスのために 'isKind(of:)'または 'isMember(of:)'を使用するでしょう。あなたは使用したいクラスのインスタンスで.fooを埋めなければなりません。あなたが望むものではない – Knight0fDragon

+3

[スイフト言語ガイド:列挙型](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html#//apple_ref/doc/uid/TP40014097- CH12-ID145)*関連値*セクションをお読みください。 – vadian

答えて

4

あなたはそのためのassociated valuesをキャプチャするためにletを使用することができます関連付けられたタイプに興味がないことを示すためのアンダースコア:

case .foo(_): 
... 
+0

あなたは男の男です、ありがとうございます。 – user2434385

関連する問題