Swift与OC闭包回调对比

24 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值