鏈?zhǔn)骄幊膛c函數(shù)編程

1. 鏈?zhǔn)骄幊?/h3>
要實(shí)現(xiàn)的效果: make.left.equalTo(superview.mas_left)

分析只有 block 可以用()調(diào)用方法. 所以 make.應(yīng)該返回 block
void(^block)() = ^{
    //code...
};
block();

例如:
self.test();
- (void(^)())test{
    voie(^block)() = ^{
          //code...
     };
}

2. 函數(shù)式編程

mgr.add(5).add(6).add(7);
mgr.add 返回一個(gè) block
block返回 mgr 就可繼續(xù)調(diào)用 block 了.

例子:

#import <Foundation/Foundation.h>

@interface CaculatorManager : NSObject

@property (nonatomic, assign)NSInteger result;


- (CaculatorManager *)caculator : (NSInteger(^)(NSInteger result))block;

- (void)log;

@end
#import "CaculatorManager.h"

@implementation CaculatorManager

- (CaculatorManager *)caculator:(NSInteger (^)(NSInteger))block{
    _result = block(_result);
    NSLog(@"%ld", _result);
    return  self;
}

- (void)log{
    NSLog(@"%ld", _result);
}

@end
#import "ViewController.h"
#import "CaculatorManager.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
 
    CaculatorManager *mgr = [[CaculatorManager alloc] init];
    [[mgr caculator:^NSInteger(NSInteger result) {
        
        result += 5;
        return result;
        
    }] log];
    
}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容