Ter dificuldade em implementar um singleton simples em swift

Eu criei um novo arquivo ->swift file . chamado Globals.Swift Então lá eu fiz:

 class Globals { static let sharedInstance = Globals() init() { var max=100 } } 

Em outra class ( UIViewcontroller ) eu gostaria de usá-lo,

 Globals.sharedInstance //is going ok 

é bom, mas quando eu vou fundo para .max eu recebo o erro.

Você não pode simplesmente ter var = xxx em um init. A variável deve ser declarada no nível superior da class.

Exemplo de usar seu singleton:

 class Globals { static let sharedInstance = Globals() var max: Int private init() { self.max = 100 } } let singleton = Globals.sharedInstance print(singleton.max) // 100 singleton.max = 42 print(singleton.max) // 42 

Quando você precisa usar o singleton em outra class, basta fazer isso na outra class:

 let otherReferenceToTheSameSingleton = Globals.sharedInstance 

Atualize após os comentários de Martin R e Caleb: Eu fiz o inicializador privado. Isso impede, em outros arquivos do Swift, a boot de Globals() , impondo que essa class se comporte como um singleton apenas podendo usar Globals.sharedInstance .