Swift – набор делегатов для singleton

У меня есть что-то вроде этого:

class SocketManager { static let instance: SocketManager var socket = Socket() } extension SocketManager: SocketDelegate { func someFunc() { } } 

Socket – это класс, у которого есть собственный protocol и delegate

 protocol SocketDelegate: class { func someFunc() } class Socket { weak var delegate: SocketDelegate? } 

Как я могу установить socket.delegate в SocketManager.instance ?

Вы устанавливаете другой класс для соответствия протоколу SocketDelegate и для назначения делегата этому классу. Как только вы это сделаете, SocketDelegate может вызвать методы делегирования, которые будут переданы классу, которому вы назначили делегат.

Ваши классы будут такими:

 class SocketManager { static let instance: SocketManager var socket = Socket() weak var delegate: SocketDelegate? } extension SocketManager: SocketDelegate { func someFunc() { } } protocol SocketDelegate: class { func someFunc() } class Socket: SocketDelegate { // so it conforms to the delegate SocketManager.instance.delegate = self } 
  • Обеспечьте гладкую очистку видео с помощью AVPlayer
  • Регистрация пользователя с помощью Firebase 3 и Swift по-прежнему показывает «currentUser»
  • Swift, как использовать перечисление для получения строкового значения
  • Курсор UISearchController UISearchBar показывает первое использование, а не последующее
  • Строковые методы в Swift для замены первого символа в строке
  • Swift: Как я могу получить слушатель, который сообщает, когда соединение потеряно и когда оно вернется?
  • «autoAdjustsScrollViewInsets» устарел в iOS 11.0
  • Фильтр Swift по объекту NSDate
  • PDFAnnotation с PDFAnnotationSubtype, равным .widget, не освежает его внешний вид после добавления его в PDFPage
  • Как я могу имитировать нажатие кнопки в Swift iOS8 с помощью кода
  • Swift: Не удалось найти перегрузку для '|' который принимает прилагаемые аргументы
  • Давайте будем гением компьютера.