链式编程

2018-11-27  本文已影响15人  流年易逝_李

.h

- (Person*)eat2;

- (Person*)sleep2;

- (Person* (^)(void))eat4;

- (Person* (^)(void))sleep4;

- (Person* (^)(NSString*foodName))eat5;

- (Person* (^)(NSIntegerhour))sleep5;

.m

- (Person*)eat2

{

    NSLog(@"%s",__FUNCTION__);

    return self;

}

- (Person*)sleep2

{

    NSLog(@"%s",__FUNCTION__);

    return self;

}

- (Person*(^)(void))eat4

{

    Person* (^eat4Block)(void) = ^ {

        NSLog(@"%s",__FUNCTION__);

        return self;

    };

    returneat4Block;

}

- (Person*(^)(void))sleep4

{

    return^ {

        NSLog(@"%s",__FUNCTION__);

        return self;

    };

}

- (Person*(^)(NSString*))eat5

{

    Person* (^eat5Block)(NSString*) = ^(NSString*foodName) {

        NSLog(@"吃: %@",foodName);

        return self;

    };

    returneat5Block;

}

- (Person*(^)(NSInteger))sleep5

{

    return^(NSIntegerhour) {

        NSLog(@"睡了%ld小时",(long)hour);

        return self;

    };

}

调用

    Person*person = [Personnew];

    [[personeat2]sleep2];

    [[personsleep2]eat2];

    // 返回block,block中返回自身

    person.eat4().sleep4();

    person.sleep4().eat4();

    // 返回block,block中返回自身

    person.eat5(@"蛋糕").sleep5(8);

    person.sleep5(8).eat5(@"面包");

上一篇 下一篇

猜你喜欢

热点阅读