2017-12-21 16 views
1

シングルトンクラスに構造体があり、別のクラスの値を設定しようとしています。私はシングルトンクラスで他の変数を設定したいようにそれを設定してみましたが、私はクラス外の構造値を設定するには?

は、私が試した「『エラーSharingManager』静的メンバーは 『bigStruct』は、タイプのインスタンスで使用することはできません」を取得します -

let sm = SharingManager.sharedInstance 

sm.bigStruct //Autocomplete doesn't work and i get an error 

私はシングルトンクラスでライン15を追加したとき、私はエラーが「プロパティに割り当てることができません:関数は、不変の値を呼び出す」を得るためにその後、私はそれを設定することはできません(私からこのメンズthの下でそれは)

sm.bigStruct.smallStruct.init().name = "my name" 

シングルトンクラスを見たが、設定はできませんので、それは、構造体のコピーを作成で -

class SharingManager { 
    struct bigStruct {    
    struct smallStruct { 
     var name = String()  
    }  
    } 
    static let sharedInstance = SharingManager() 
    var big = bigStruct.self  
} 

私のシングルトンクラスは、通常の変数のために正常に動作しますが、私は見つけることができませんシングルトンクラスで構造体を設定する方法。

答えて

0

これは動作します:bigStruct/smallStructインスタンスのプロパティまたは関数ではないので

var big = SharingManager.bigStruct() 
var small = SharingManager.bigStruct.smallStruct() 
small.name = "I am a smallStruct" 

は働くことができない次の

SharingManager.sharedInstance.bigStructが

SharingManager.sharedInstance.bigStruct.smallStruct.init()。name = "私の名前"

関連する問題