我是Android开发人员,我对Swift很新,所以请耐心等待。我试图在Swift中使用Protocol实现回调函数。在Java中,我可以创建一个接口并使其成为一个实例,而不将其链接到任何实现类,以便我可以传递它,例如:
public interface SomeListener {
void done();
}
SomeListener listener = new SomeListener() {
@Override
public void done() {
// do something
}
}
listener.done();
如何在Swift中使用Protocol?或者它可以实际完成吗?
答案 0 :(得分:5)
这是一种可以实现协议的方法。它就像ObjC中的委托模式
protocol DoneProtocol {
func done()
}
class SomeClass {
var delegate:DoneProtocol?
func someFunction() {
let a = 5 + 3
delegate?.done()
}
}
class Listener : DoneProtocol {
let someClass = SomeClass()
init() {
someClass.delegate = self
someClass.someFunction()
}
// will be called after someFunction() is ready
func done() {
println("Done")
}
}