#ios #swift4.2
#iOS #swift4.2
Вопрос:
Я пытался преобразовать одноэлементный класс в универсальный. Поскольку swift не поддерживает сохраненное свойство в универсальном классе, Синглтон не может быть реализован. Я перепробовал все возможные решения, которые я знаю, но ничего не работает. Другие ответы Stackoverflow, связанные с этой темой, также не помогают. Кто-нибудь может помочь мне встать на правильный путь, пожалуйста? Заранее спасибо.
Я добавил пример кода ниже.
class SingleTonClass<T: Equatable amp; RawRepresentable>: NSObject where T.RawValue == String {
private var catlog: CatlogModelClass<T>?
private var catlogArray = [CatlogModelClass<T>]()
**// This stored property Now has to be changed to support Generic**
private static var shared : SingleTonClass = {
return SingleTonClass()
}()
// Accessor for Singleton
static func sharedInstance() -> SingleTonClass {
return shared
}
private override init () {}
}
Комментарии:
1. Вам нужно будет показать некоторый код.
2. Конечно. Теперь я отредактировал свой вопрос с помощью примера кода.
Ответ №1:
Если вы хотите, чтобы это был не синглтон, вам нужно создать общедоступный конструктор.
Вы должны передать catalog и catalogArray в конструктор и инициализировать self.catalog и self.catalogArray. Затем вам нужно удалить статический общий экземпляр класса, потому что ваша новая настройка потребует от вас создания его экземпляра.
Комментарии:
1. Это должен быть одноэлементный класс в соответствии с архитектурой.