移动开发主流:安卓和苹果开发,而苹果开发主要运用的开发语言是Object-c,从14年起,苹果新推出一门开发语言(Swift)。Swift语言相对于OC最大的区别,就是Swift语言完全是开源的。而且比OC语言语法更加简洁。
那我们就从入门Block与闭包,讲讲OC于Swift的区别。都知道Block在OC里面开发用得特别多,而Swift主要用闭包,那两者到底有什么区别,其实你可以这么理解,闭包相当于OC里面Block,这么说是不是就恍然大悟了呀。
一。 Block写法:
typedefvoid(^BlockValue)(NSString*str);
@property(nonatomic,copy)BlockValue blockValue;
//在合适的地方使用block
self.blockValue= ^(NSString*str) {
NSLog(@"%@",str);
};
//OC block传值
if (self.blockValue) {
self.blockValue(@"OC block传值");
}
二。 闭包写法:
typealiasBackValueBlock = (String)->()//声明一个闭包
var backValueBlock:BackValueBlock?;//把闭包声明成一个属性
self.backValueBlock = {
(Str) ->Void in
print(Str)
}
@objcfuncbuttonClick(btn:UIButton){
print("点击了button");
if backValueBlock != nil {
backValueBlock!("swift send a value!!!!");
}
}
网友评论