如何在Swift中定义单例

问题描述 投票:-1回答:1

我正在使用此代码定义单例:

class MySingleton {

    static let instance = MySingleton()

    private init() {}

    func example(myParameter:String) {

    }
}

似乎可以正常运行,因为我可以正确地执行以下呼叫:

MySingleton.instance.example(myParameter:"a string")

奇怪的行为是我也可以做到这一点:

MySingleton.example(self: MySingleton.instance)

我知道我已经定义了一个静态属性来创建Singleton,但是函数example不是静态的,为什么我可以从类级别调用它?另外,请注意第二个调用的参数,它没有接收到函数中定义的String参数,而是接收的是self类型的MySingleton

正如我所见,如果将函数定义为私有,这不会发生,但是显然我需要将其公开以正确使用,所以,我在错误地定义了什么?

我正在使用以下代码定义单例:class MySingleton {static let instance = MySingleton()private init(){} func example(myParameter:String){}}似乎可以正常工作...

swift singleton static-methods
1个回答
0
投票

尽管已经有人说过这个问题已经得到解决,所以我认为有一些差异使这个问题变得独特,这就是为什么我要回答这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.