2016-03-29 7 views
1
struct List { 
    class Item1: Holdable, Throwable { 
     var property1 = "A" 
     var property2 = "B" 
    } 

    class Item2: Holdable { 
     var property2 = "A" 
     var property3 = "B" 
    } 

    class Item3: Throwable, Catchable { 
     var property4 = "A" 
     var property5 = "B" 
    } 
} 

私はこのようなリストを持っています。構造体のクラスの子をループする方法は?

List.Item1() 

私はアイテムをすべて手に入れたいのですが、どうすれば入手できますか?

+0

でコンパイルしてはならない、私はミラーを試してみたが、それは動作するようには思えません。 – demiculus

+0

@demirb構造体について、名前空間について考えると、いくつかのクラスを宣言します。構造体には全くプロパティがありません。 List.Item1はコンパイルエラーだけを示します。 let i1Type = List.Item1.selfはList.Item1.Typeを与え、i1 = List.Item1()はあなたにその型のインスタンスを与えます。それはすべてです... – user3441734

+0

"List.Item1"の最後に "()"を追加しました。ちょうどそれを逃した。しかしそれはそうではありません。私は既にアイテムを1つずつアクセスできます。しかし、私は100sのアイテムをループしたい。そして私が思いつくことができる唯一の解決策は、これらのクラスをさまざまなタイプの配列に入れて、これらの配列を呼び出すことです。これは余分な作業です。 これをアクセス可能なオブジェクトに変換する方法があれば、それは素晴らしいことです。 – demiculus

答えて

0

この「自明」の例を見

struct S { 
    class A{} 
    class B{} 
    struct C{} 
} 

let a = S.A.self // S.A.Type 
let b = S.B()  // instance of S.B class 
let c = S.C()  // instance of S.C struct 
let s = S()   // instance of struct S without any property 

これは、すべての

let a = S.A // error!! 
let b = S.B // error!! 
+2

これがどのように質問に答えるかわかりません。 – trojanfoe

+0

@trojanfoeください、OPの質問の下に私のメモを参照してください。 – user3441734

関連する問題