微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

很难在swift中实现一个简单的单例

我创建了一个文件 – > swift文件.叫Globals. Swift
然后在那里我做了:
class Globals {

    static let sharedInstance = Globals()

    init() {
        var max=100
    }

}

在另一个类(UIViewcontroller)中我想使用它,

Globals.sharedInstance //is going ok

很好,但是当我深入.max时,我得到了错误.

你不能只在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强制此类表现为单例.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐