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 } 
Interesting Posts
Давайте будем гением компьютера.