当前位置: 首页 > 知识库问答 >
问题:

如何在Swift[duplicate]中实现Singleton类

姬歌者
2023-03-14

我是斯威夫特编程新手,请告诉我如何用代码在斯威夫特实现单例类。

在obj-c中我知道

+ (id)sharedManager {
   static MediaModel *sharedMyManager = nil;
   static dispatch_once_t onceToken;

   dispatch_once(&onceToken, ^{
      sharedMyManager = [[self alloc] init];
   });
   return sharedMyManager;
}

斯威夫特怎么样

共有2个答案

归誉
2023-03-14

关于单身阶级,斯威夫特比Obj-C聪明得多。你可以这样申报;

final class MediaModel: NSObject {

    static let sharedMyManager = MediaModel()

    private override init() {
        super.init()
    }
}

那就叫它;

let sharedManager = MediaModel.sharedMyManager
广乐邦
2023-03-14

斯威夫特很简单:

class YourClass {
    static let sharedInstance = YourClass()
}

并使用它:

YourClass.sharedInstance
 类似资料:
  • 问题内容: 我正在使用iOS的Google Maps API,并想使用标记聚类实用程序。我想出了如何显示聚簇标记,但是我想自定义标记。有人可以解释如何设置/更改每个标记或群集标记的图标和标题吗?示例代码将非常有帮助。 到目前为止,这就是我所拥有的。我不知道该如何处理renderClusters和更新函数。 问题答案: 在 Swift 4上 ,我找到了一种针对聚簇标记的干净解决方案,可以为聚簇使用自

  • 目前正在nodeJS中开发一个后端,它使用、,并将MongoDB作为其数据库。我读到实现单例DB连接是一个很好的实践,它将在整个应用程序中重用。我试图实现这个还没有找到解决方案。我试图使用go-oleg的这个SO答案。 我复制了第一部分,外部mongoUtil.js文件如下: 然后在我的server.js我像这样调用这个函数一次(我不做任何回调,这是必需的吗?)。 然后,当我在应用程序的另一个模块

  • 我一直在尝试实现一个单例,以用作我从网络上传到iOS应用程序的照片的缓存。我在下面的代码中附加了三个变体。我试图让变体2工作,但它导致一个编译器错误,我不明白,并希望得到关于我做错了什么的帮助。变体 1 执行缓存,但我不喜欢使用全局变量。变体3不做实际的缓存,我相信这是因为我在var ic = ....的分配中得到了一个副本,这是正确的吗? 任何反馈和见解将不胜感激。 谢谢,Zvi

  • 问题内容: 问题 注释 我在计算范围中的元素数量等时遇到问题… 问题答案: 范围中的值是,因此您只能使用它们或计算,但是未定义减法。预付款必须是相应的类型。因此,这可能是一种实现: 例: 但是请注意,这不是整数列表(或数组)。要将 数组 拆分为子 数组 ,可以定义类似的扩展名: 例: 一种更通用的方法是拆分所有 可切片 对象。但 是 协议 和协议不能扩展。你可以做的反而是定义一个 函数 ,是以可切

  • 这是我的sql语句 我的is目标是通过来,但是当我执行上面的查询时,我得到以下错误不兼容 这是我的样品表

  • 问题内容: 我已经读过,可以使用以下方式在Java中实现: 但是,以上内容如何运作?具体来说,必须实例化an 。在这里,如何实例化?谁在做什么? 问题答案: 这个, 有一个隐式的空构造函数。相反,让它明确 如果你随后使用类似的方法添加了另一个类 你会看到 字段是编译时间常数,但它们是其类型的实例。并且,它们是在首次引用枚举类型时构造的。