Swift – 为单身人士设置代表

我有这样的东西:

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

Socket是一个拥有自己的protocoldelegate

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

我怎样才能将socket.delegate设置为SocketManager.instance

您将另一个类设置为符合SocketDelegate协议并将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 }