简体   繁体   English

如何像我在 android 中那样实现协议

[英]how to implement protocol as I did in android

DialogManager.showDialog(this, message, new OnTwoButtonClickListener() {
               @Override
               public void onButtonClick1() {}                                        

               @Override
               public void onButtonClick2() {}                       
           });

How could I create same functionality in swift 3.我怎么能在 swift 3 中创建相同的功能。

As far as I know I can't create new instance from protocol.据我所知,我无法从协议创建新实例。

I know about delegation and I know I can do that way but I am looking for another solution.我知道委托,我知道我可以这样做,但我正在寻找另一种解决方案。

I want my dialog usage will be as mentioned above.我希望我的对话用法如上所述。

Could anyone suggest me best solution?谁能建议我最好的解决方案?

Try using closures .尝试使用闭包

showDialog would be defined like this: showDialog将像这样定义:

func showDialog(message: String, 
    button1Click: @escaping () -> Void, 
    button2Click: @escaping () -> Void)

To trigger the closures, do:要触发关闭,请执行以下操作:

button1Click()
button2Click()

To call showDialog , do:要调用showDialog ,请执行以下操作:

showDialog(message: "Hello", 
           button1Click: { // code },
           button2Click: { // code })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM