2017-12-21 7 views
1

Ich habe eine Struktur in meiner Singleton-Klasse und ich versuche, die Werte in einer anderen Klasse festzulegen. Ich versuchte es einstellen, wie ich andere Variable in der Singleton-Klasse festgelegt würde, aber ich erhalte eine Fehlermeldung SharingManager „Static member‚bigStruct‘kann nicht auf Instanz des Typs verwendet werden,‚‘“Wie setzen Sie Strukturwerte außerhalb der Klasse?

Ich versuchte -

let sm = SharingManager.sharedInstance 

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

Dann, wenn ich Linie 15 in der Singleton-Klasse hinzufügen, kann ich es nicht, weil ich den Fehler „zuweisen kann nicht zu Eigenschaft: Funktion unveränderlichen Wert ruft“ get (Von dem, was ich untertäuschen diesen Mens th es eine Kopie der Struktur macht so kann es aber nicht gesetzt) ​​

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

Singleton Klasse betrachtet werden -

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

Meine Singletonklasse arbeitet für normale Variablen in Ordnung, aber ich kann nicht finden wie man eine Struktur in einer Singleton-Klasse setzt.

Antwort

0

Dies funktioniert:

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

Die folgende nicht funktionieren kann, weil bigStruct/smallStruct nicht Instanz Eigenschaften oder Funktionen sind:

SharingManager.sharedInstance.bigStruct

SharingManager.sharedInstance.bigStruct.smallStruct.init(). Name = "mein Name"

Verwandte Themen