block实现链式编程


// Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
//- (Person *)study;
//- (Person *)run;

- (Person *(^)(NSString *name))study;
- (Person *(^)())run;
@end


// Person.m
#import "Person.h"

@implementation Person
//- (Person *)study
//{
//    NSLog(@"study----");
//
//    return self;
//}
//
//- (Person *)run
//{
//    NSLog(@"run----");
//    return self;
//}

- (Person *(^)(NSString *))study
{
    return ^(NSString *name){
        NSLog(@"study----%@", name);
        return self;
    };
}

- (Person *(^)())run
{
    return ^{
        NSLog(@"run----");
        return self;
    };
}
@end


// main.m
#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        Person *p = [[Person alloc] init];

//        [p run];
//        [p study];
//        [[p run] study];
//        [[[[p run] study] run] study];

        p.study(@"Math").run().study(@"English");
    }
    return 0;
}



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【一】遭遇 到今天iOS开发中最常用的语言还是objc,市场就像泰坦尼克号,人虽然在上楼,但是船在下沉,所以人还是...
    窦豆逗阅读 3,573评论 0 0
  • 链式编程就是将多个方法的调用通过.号链接成一句的代码.便代码更加紧凑,可读性非常好,而且降低了代码的重复读,比如以...
    字节码阅读 2,953评论 0 0
  • 本篇笔记大部分参考于Block和链式编程感谢原作者。本笔记仅在细节上做补充。 综述 使用场景:对象调用了一个方法想...
    黑羽肃霜阅读 2,967评论 0 0
  • 场景 实现连续加法运算 1 + 2 + 3 + 4.。。。 普通实现 -(NSInteger)addWithPar...
    330b92bcaf74阅读 1,787评论 0 1
  • 虽然链式编程很少见,但是某些场合下,如果能够巧妙利用block 实现链式编程的话,不仅会提高开发效率,而且代码很清...
    光明程辉阅读 4,681评论 1 9

友情链接更多精彩内容