使用闭包block的方式,一是定义成函数方式,二是定义成属性变量。
- // 1
- // block定义
- typealias BlockTarget = (String) -> (Void)
- // 定义成变量
- var blockTarget:BlockTarget?
- //
- self.blockTarget = { text -> Void in
- print("text = \(text)")
- }
- //
- self.navigationItem.rightBarButtonItem = UIBarButtonItem.init(title: "block",style: .Done,target: self,action: Selector("blockClick"))
- //
- func blockClick()
- {
- self.blockTarget?("block click")
- }
- // 2
- //
- var blockAction:((String) -> (Void))?
- //
- self.blockAction = { text -> Void in
- print("action = \(text)")
- }
- //
- self.navigationItem.rightBarButtonItem = UIBarButtonItem.init(title: "block",action: Selector("blockClick"))
- //
- func blockClick()
- {
- self.blockAction?("black action")
- }
1、无参数的函数
2、带参数的函数
- // 带参数
- func resultImageUrl(url url:String,handle:(NSURL) -> Void)
- {
- let nsurl = NSURL(string: url)
- print("NSURL = \(nsurl)")
- handle(nsurl!)
- }
- // 使用
- self.resultImageUrl(url: "http://www.hao123.com") {
- (url:NSURL) -> Void in
- print("url is \(url)")
- }