У меня нет этой проблемы?
Сначала на мгновение удалите синглтон из своего мозга.Потому что я думаю, что у вас неверное представление о том, что такое синглтон.
Теперь давайте перефразируем ваш вопрос: «Как создать экземпляр класса с параметром»
Это так:
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 с нужными вам параметрами.
Теперь нужно правильно создать экземпляр singleton (в основном это просто класс выше, но единственныйпример).Есть много способов, старый подход 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
Теперь у вас может возникнуть вопрос: когда создается экземпляр этого одиночного экземпляра?
Ответ: Это когда он впервые используется / вызывается.