Как создать синглтон в универсальном классе с помощью swift 4.2?

#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. Это должен быть одноэлементный класс в соответствии с архитектурой.