9.22 利用block实现链式编程

学习了一下链式编程,总结了一下,个人觉得就是利用block直接按照格式写就行。注意格式写法,其实就是多了个返回值😝

下面用一个例子说明:

首先:新建一个Animal类 (😔 好吧...又是Animal...)

Animal.h文件

- (Animal *(^)(NSString *name))dogname;
- (Animal *(^)(NSString *food))eat;
- (Animal *(^)())run;

Animal.m文件

- (Animal *(^)(NSString *name))dogname
{
    return ^(NSString *name){
        NSLog(@"狗狗的名字叫: %@",name);
        return self;
    };
}

- (Animal *(^)(NSString *food))eat
{
    return ^(NSString *food){
        NSLog(@"狗吃了:%@",food);
        return self;
        
    };
}

- (Animal *(^)())run{
    return ^(){
        NSLog(@"能跑3公里");
        return self;
    };
}

最后我们在Main函数(我没有写Main函数👻),或者ViewController.m里面调用即可。


  Animal *animal = [[Animal alloc] init];
  animal.dogname(@"哈士奇").eat(@"一根大骨头").run();

打印结果如下:

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,238评论 30 472
  • 序言:翻阅资料,学习,探究,总结,借鉴,谢谢探路者,我只是个搬运工。参考、转发资料:http://www.cnbl...
    Init_ZSJ阅读 918评论 0 1
  • 虽然链式编程很少见,但是某些场合下,如果能够巧妙利用block 实现链式编程的话,不仅会提高开发效率,而且代码很清...
    光明程辉阅读 1,072评论 1 9
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,300评论 1 23
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 3,790评论 0 23