当前位置: 首页 > 面试题库 >

很难快速实施简单的单例

闻人宏盛
2023-03-14
问题内容

我创建了一个新文件->swift file。所谓Globals.Swift 然后在那里我做:

class Globals {

    static let sharedInstance = Globals()

    init() {
        var max=100
    }

}

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

Globals.sharedInstance //is going ok

很好,但是当我深入研究.max错误时。


问题答案:

您不能只是拥有var = xxx一个init。该变量必须在类顶层声明

使用单例的示例:

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



 类似资料:
  • 问题内容: 我有一个带有自定义TreeModel和自定义TreeRenderer的JTree。树模型包含一堆不同类型的对象。这些类型之一的显示方式与其他类型不同:显示的文本是对象的两个字段的串联。当我编辑单元格时,我想用编辑后的文本更新这些字段之一。到目前为止,我的工作情况还不错。 我的问题:当您在编辑时显示的文本是2个字段的完整串联值时,即使您实际上只是在编辑其中一个字段,也令人困惑。因此,当用

  • 本文向大家介绍php简单实现快速排序的方法,包括了php简单实现快速排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单实现快速排序的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍Spring Boot简单实现快速搭建图解,包括了Spring Boot简单实现快速搭建图解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring Boot简单实现快速搭建图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1,创建新项目 2,选择Spring Initializr,其它默认, 3,添加包名和模块名

  • 本文向大家介绍Python实现快速排序算法及去重的快速排序的简单示例,包括了Python实现快速排序算法及去重的快速排序的简单示例的使用技巧和注意事项,需要的朋友参考一下 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

  • 我有一个非常简单的结构: < code>main.cpp是: 是 是: < code>-I./include 当我点击

  • 本文向大家介绍Android 实现夜间模式的快速简单方法实例详解,包括了Android 实现夜间模式的快速简单方法实例详解的使用技巧和注意事项,需要的朋友参考一下 ChangeMode 项目地址:ChangeMode Implementation of night mode for Android. 用最简单的方式实现夜间模式,支持ListView、RecyclerView。 Preview Us