Swift与OC闭包回调对比

释放双眼,带上耳机,听听看~!

在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,回调的在使用过程的差异,更多是语法的差异。

人已赞赏
iOS文章

iOS获取当天时间的23:59:59

2021-1-14 17:33:28

iOS文章

iOS13设置 UITabBarItem的选中颜色无效

2021-1-14 17:34:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索