我是新手,很快就四处搜寻,但找不到任何令人满意的答案。我想有一个可以用一些变量初始化的Singleton类实例。例如
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()
}
我该如何实现?我尝试了协议,但遇到的问题是如何使用参数实例化单例类。
答案 0 :(得分:0)
我没有这个问题吗?
首先从大脑中移除单身人士一会儿。因为我认为您对什么是单身人士有错误的认识。
现在让我们重新表述您的问题:“如何使用参数实例化类”
是这样的:
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")
您只需要使用所需的参数定义一个初始化。
现在可以正确地实例化一个单例(基本上只是上面的类,但是单个实例)。有很多方法,旧的Objective C方法仍然有效。
但是为了快速起见,这是最常见的模式。您需要定义一个静态属性。
示例:
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")
现在重新读取单例的定义:
单例类是只能有一个对象( 一次)
对于声明单例的其他模式:
https://cocoacasts.com/what-is-a-singleton-and-how-to-create-one-in-swift
现在,您可能想知道:此单例实例何时实例化?
答案:第一次使用/调用它的时间。