Block复用代码(iOS)

使用场景:当想抽取代码到当前类中,通常的做法是直接抽取成一个对象方法,但如果将要抽取很多代码在当前类中,并且被抽取的代码只是在同一个方法中被多次调用,会导致当前类的零碎的方法过多,这时就可以使用Block复用代码

直接抽取成一个对象方法

- (void) dealingResult:(NSArray *)statuses
{
    /*被抽取的代码*/
}
- (void)loadNewStatus
{
    NSArray *statuses = [StatusTool statusesWithParams:params];
    if (statuses.count) {
        //调用
        [self dealingResult:statuses];
    } else {
        [HttpTool get:@"https://api.weibo.com/2/statuses/friends_timeline.json" params:params success:^(id json) {
            //调用
            [self dealingResult:statuses];
        } failure:^(NSError *error) {
            
        }];
    }
}

使用Block复用代码, 被抽取的代码只在这个方法中被复用

- (void)loadNewStatus
{
    void (^dealingResult)(NSArray *) = ^(NSArray *statuses){
        /*被抽取的代码*/
    };
    
    NSArray *statuses = [StatusTool statusesWithParams:params];
    if (statuses.count) {
        //调用
        dealingResult(statuses);
    } else {
        [HttpTool get:@"https://api.weibo.com/2/statuses/friends_timeline.json" params:params success:^(id json) {
            //调用
            dealingResult(json[@"statuses"]);
        }];
    }
}```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,025评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,600评论 18 399
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,395评论 30 472
  • 注:此文章来源:Job_Yang 的简书 1. Object-c的类可以多重继承么?可以实现多个接口么?Categ...
    广益散人阅读 5,171评论 0 13
  • 昨天晚上做了一个梦。梦见一个高中同学成了一位职场精英,而我巧合的成了他的属下。结局是日久生情,他突然跪地向我求婚,...
    赵小婵阅读 1,333评论 0 1

友情链接更多精彩内容