我创建了一个新文件->swift file。所谓Globals.Swift 然后在那里我做:
->swift file
Globals.Swift
class Globals { static let sharedInstance = Globals() init() { var max=100 } }
UIViewcontroller我想在另一个class()中使用它,
UIViewcontroller
Globals.sharedInstance //is going ok
很好,但是当我深入研究.max错误时。
.max
您不能只是拥有var = xxx一个init。该变量必须在类顶层声明。
var = xxx
使用单例的示例:
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
当需要在另一个类中使用单例时,只需在另一个类中执行此操作:
let otherReferenceToTheSameSingleton = Globals.sharedInstance
按照Martin R和Caleb的评论进行更新: 我已将初始化程序设为私有。它在其他Swift文件中阻止的初始化Globals(),从而只能通过使用来强制此类充当单例Globals.sharedInstance。
Globals()
Globals.sharedInstance