链式编程

#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
#import 
#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(@"aaa").run().study(@"bbb");
    }
    return 0;
}

你可能感兴趣的:(链式编程)