swift2.0 用闭包表达式 代替 protocol 传值回调

在oc 中经常用到blcok 代替 prtocol 来进行回调 代码更加简洁,但是在swift 中我们通常会用 闭包表达式来进行回调传值,基础语法请百度自行补脑。
上面的博客自定义了AlertView 用 protocol 进行了回调
代码如下

@objc protocol SwiftCustomAlertViewDelegate : NSObjectProtocol{

    optional func  selectOkButtonalertView()

    optional func  selecttCancelButtonAlertView()

}
if delegate?.respondsToSelector(Selector("selecttCancelButtonAlertView")) == true {

           print("cancelDelegate")

            delegate?.selecttCancelButtonAlertView!()
        }
if delegate?.respondsToSelector(Selector("selectOkButtonalertView")) == true {

            delegate?.selectOkButtonalertView!()
        }

下面用闭包表达式代替他们,先定义俩哥哥闭包表达式的变量

//没有回调
   var clickedCancelButtonAction:((Void)->(Void))? //回调button tag var clickedOkButtonAction:((buttonTag:NSInteger)->(Void))?
if clickedCancelButtonAction != nil {

            clickedCancelButtonAction!()

        }

     if clickedOkButtonAction != nil {

            clickedOkButtonAction!(buttonTag:button.tag)

        }

调用的控制器里接受

let alertView = SwiftCustomAlertView(title:"swift",message:"custom swift alert",delegate: self)
        alertView .show();

        alertView.clickedCancelButtonAction = {

            print("selectCancel")
        }

        alertView.clickedOkButtonAction = {(buttonTag)->Void in

            print("Button tag \(buttonTag)")
        }

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...