加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:25:23 所属栏目:百科 来源:网络整理
导读:我创建了一个新文件 – swift文件.叫Globals. Swift 然后在那里我做了: class Globals { static let sharedInstance = Globals() init() { var max=100 }} 在另一个类(UIViewcontroller)中我想使用它, Globals.sharedInstance //is going ok 很好,但是当我
我创建了一个新文件 – > 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强制此类表现为单例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读