您的位置:首页 > 移动开发 > Swift

Swift与OC闭包回调对比

2016-08-22 17:10 309 查看
在iOS开发中,实现回调的方式有:Delegate和Block。前者用变量指针实现,后者用函数指针实现。

闭包在Objective-C中被称为Block,在Swift中被成为Closure(在Java中称为Lambda)

本文主要简单记录下 Swift使用闭包回调与OC的Block的使用差异。

1、定义

OC

typedef void(^fucBlock)(NSString *backMsg);


Swift

typealias fucBlock = (backMsg :String) ->()


2、创建

OC

@property (nonatomic, copy) fucBlock blockproerty;


Swift

var blockproerty:fucBlock!


3、使用,创建一个类processData

OC

- (void)processMethod
{
if (self.blockproerty) {
self.blockproerty(@"OK");
}
}


Swift

func processMethod(cmdStr:String?){
blockproerty!(backMsg:"OK")
}


回调

OC

process.blockproerty = ^(NSString *backMsg) {
NSLog(@"%@",backMsg);
});


Swift

process.blockproerty={ (backMsg) in
print(backMsg)
}


从上面的代码对比,很清楚知道oc与Swift,回调的在使用过程的差异,更多是语法的差异。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: