刚开始接触链式语法是JS,如果用JS写UIView的初始化,大概是这样的UIView.alloc().init();
而我们写的语言并不是JS,而是OC,那么又怎么像JS一样的运用链式语法来进行编程呢?废话不多说,直接撸代码:
1. 首先我们自己创建UIView一个扩展,名字叫做ChainView:
2.我们自己定义UIView的初始化方法:
.h中:
.m中:[self new] 等同于 [[self alloc] init];
3.我们通过属性的方法通过block每次将当前的对象返回,从而来实现下一次的调用,形成链式的结构:
.h中:
.m中:
4.我们尝试调用一下:
首先引用我们创建的"UIView+ChainView",然后我们书写一下:
没有问题,编译器没有报错,然后我们打个断点运行一下:
我们发现输出结果跟我设置的是一样的。点击继续,查看一下屏幕上的输出:
完工!
通过这个例子我们实现了最简单的链式编程。有兴趣的同学,可以自己写写UIButton,UILabel等等来试试。
补充一下:链式语法声明的另一种方式,实现是一样的:
参考资料:Masonry BabyBluetooth
网友评论