2017-07-25 18 views
1

クラスがネストされたクラスを持っています。私は、ネストされたクラス内から外部クラスの変数にアクセスしようとしている:入れ子クラスのSwift 4で "インスタンスメンバーを型で使用できません"

class Thing{ 
    var name : String? 
    var t = Thong() 

    class Thong{ 
     func printMe(){ 
      print(name) // error: instance member 'name' cannot be used on type 'Thing' 
     } 
    } 

} 

このしかし、私は次のエラーを与える:

instance member 'name' cannot be used on type 'Thing'

はこれを回避するエレガントな方法はありますか?私はクロージャのようにネストされたクラスがレキシカルスコープを取得することを望んでいました。

おかげ

+4

ような何かを行うことができ、自動的にあなたが提出したコードはコンパイルされません外部クラス – Steve

答えて

0

は、Javaスウィフトネストしたクラスとは異なり、この

class Thing{ 
    var name : String = "hello world" 
    var t = Thong() 

    init() { 
     t.thing = self 
     t.printMe() 
    } 


    class Thong{ 
     weak var thing: Thing! 

     func printMe(){ 
      print(thing.name) 
     } 
    } 

} 
+0

への参照を持っていません。 –

+1

あなたは 'var t = Thong(t:self)'をするつもりだと思っています。 – Paolo

+0

@CharlesFisherそれは残念です。回答を更新しました – Steve

関連する問題