带参数的 swift 单例

  • 本文关键字:单例 swift 参数 swift
  • 更新时间 :
  • 英文 :


我对 swift 相对较新,四处搜索,但找不到任何令人满意的答案。我想要一个可以用一些变量初始化的单例类实例。例如

public class Singleton {
var car: String
var bus: String
init(car: String, bus: String) {
self.car = car
self.car = bus
}
func drive() {
print("I will drive")
}
}

public class SingletonConsumer {
// create an instance of Singleton Once
var driver: Singleton = Singleton(car: "honda", bus: "volvo")
driver.drive()
}

public class driverClassWorld : SingletonConsumer {
driver.drive()
}

我怎样才能实现它?我尝试了协议,但我遇到的问题是如何使用参数实例化单例类。

我没有遇到这个问题?

首先从你的大脑中移除单例一会儿。因为我认为你对单身人士有什么错误的想法。

现在让我们将您的问题改写为:"如何使用参数实例化类">

是这样的:

import Foundation
class Test {
let someText : String!
init(something:String){
someText = something
}
func test(){
print("TEST (someText)")
}
}
let a = Test(something: "Me")
a.test()

输出:

TEST Optional("Me")

你只需要用你想要的参数定义一个 init。

现在要正确实例化一个单例(基本上它只是上面的类,而是单个实例(。有很多方法,旧的Objective C方法仍然有效。

但对于 swift 来说,这是最常见的模式。您需要定义一个静态属性。

例:

import Foundation
class Test {
static let shared = Test(something: "REAL SINGLETON")
let someText : String!
init(something:String){
someText = something
}
func test(){
print("TEST (someText)")
}
}
Test.shared.test()

输出:

TEST Optional("REAL SINGLETON")

现在重读单例的定义:

单例类是只能有一个对象的类 (a 类的实例(一次

对于声明单一实例的其他模式:

https://cocoacasts.com/what-is-a-singleton-and-how-to-create-one-in-swift

现在,您可能想知道:此单一实例何时实例化?

答:这是第一次使用/调用它的时候。

最新更新