iOS Swift如何创建Protocol实例

时间:2014-12-23 08:55:11

标签: ios objective-c iphone xcode swift

我是Android开发人员,我对Swift很新,所以请耐心等待。我试图在Swift中使用Protocol实现回调函数。在Java中,我可以创建一个接口并使其成为一个实例,而不将其链接到任何实现类,以便我可以传递它,例如:

public interface SomeListener {
    void done(); 
}

SomeListener listener = new SomeListener() {
    @Override
    public void done() {
        // do something
    }
}
listener.done();

如何在Swift中使用Protocol?或者它可以实际完成吗?

1 个答案:

答案 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")
   }
}