给出一个非常简单的协议:
protocol TheProtocol {
func doSomething()
func doSomethingElse()
func doThis()
func doThat()
}
我有一个Base
类,有一个等待设置的委托。
// Can't modify this class at all
class Base {
public var delegate: TheProtocol?
}
我的第二个类B
继承自此类Base
,并实现TheProtocol
以便将委托设置为其自身。
class B: Base, TheProtocol {
override init() {
super.init()
self.delegate = self
}
func doSomething() {
}
func doSomethingElse() {
}
... other methods to implement
}
现在,我想做的是拥有最后一个类C
,该类包含B
的实例,并设置委托。我希望代表在B
和C
内部工作。
主要限制是我无法修改Base
类。
class C: TheProtocol {
var obj = B()
init() {
// If I do this it won't fire within B anymore
obj.delegate = self
}
func doSomething() {
}
func doSomethingElse() {
}
... other methods to implement
}
答案 0 :(得分:0)