21827


クラスの配列を使用して、INDEXで指定のクラス情報を引き出したいと考えているのですが、  
★箇所にてinstance member 'test_1' cannot be used on type 'Otamesi'  
と、インスタンスメンバーが使用できないとエラーになってしまいます。  
このような使い方はできないのでしょうか。

[code]

    class Otamesi: NSObject {
        class Test :NSObject {
            var test: Int!
            init (test: Int) {
                self.test = test
            }
        }
    
        private var test_1: Test = Test(test: 1)
        pricate var test_2: Test = Test(test: 2)
    
        private var test_All: [Test] = [test_1, test2]★
    }
    
[/code]


CC BY-SA 3.0
2016-02-08T02:11:13.280
21825
2016-02-08T02:35:41.703
12842
question
swift
クラス配列の配列を使いたい


`Otamesi`をインスタンス化している最中に`test_All`プロパティをインスタンス化しようとしているので、エラーが発生しています。

これを回避するには、

[code]

    private var test_All:[Test] {
        get {
            return [test_1, test_2]
        }
    }
    
[/code]

のように`test_All`を **get** を用いて定義することで、  
値が必要なときに取得できるようにしましょう。

このようにすれば、  
下記メソッドを`Otamesi`に定義した`sampleMethod`を実行したときに、

[code]

    func sampleMethod() {
        for(var i=0; i < test_All.count; i++) {
            print(test_All[i].test)
        }
    }
    
[/code]

問題なく、値が取得できていることがわかると思います。

以上、少しでも参考になれば幸いです。


CC BY-SA 3.0
2016-02-08T02:35:41.703
21827
2016-02-08T02:35:41.703
8968
21825
answer