HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 一对二完成块大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一个使用twoBlock方法network kit,但我更喜欢在我自己的代码中使用oneBlock.如果twoBlock方法更好,这让我感到困惑.不知怎的,我没有看到它. @H_874_5@ @H_874_5@有没有办法比其他方法更好?

@H_874_5@oneBlock方法

@H_874_5@1个组合数据和错误的块:

@H_874_5@
-(void)oneBlock {
    [self startWithCompletionBlock:^(id obj,NSError* error) {
        if(error) {
            NSLog(@"error: %@",error);
        } else {
            NSLog(@"success: %@",obj);
        }
    }];
}
@H_874_5@twoBlock方法

@H_874_5@2个专用于处理数据和错误的块:

@H_874_5@
-(void)twoBlocks {
    [self startWithCompletionBlock:^(id obj) {
        NSLog(@"success: %@",obj);
    } errorBlock:^(NSError* error) {
        NSLog(@"error: %@",error);
    }];
}

解决方法

我认为你不能说任何一个更好.只有不同的利弊平衡. @H_874_5@ @H_874_5@这两种方法的主要优点是可以更好地分离“快乐”路径和错误管理代码. (这种分离听起来类似于使用异常提供的优势之一,但它是一种不同的野兽;实际上,catch块允许在一个地方收集,即在“功能”块之外,所有代码都可以管理在“功能”块中可能出现的一堆可能的错误条件,其管理通常会分散在它上面;在上面的2个块示例中,没有这个,因为管理错误条件的代码仍然是混合的与你的功能的其余代码).

@H_874_5@另一方面,很可能在两种情况下,即成功和失败,你想采取一些共同的行动.可以想象,例如,序列化一堆网络操作:当一个操作完成时,执行下一个操作,无论前一个操作是成功还是失败.如果使用2块方法,这显然是一些代码复制的情况.

@H_874_5@总的来说,我不认为存在很大差异,因为您可以轻松地完成两种方法所需的操作,但在特定情况下,一种方法可以比另一种方法更适合您的工作流程.

@H_874_5@只需2美分.

大佬总结

以上是大佬教程为你收集整理的ios – 一对二完成块全部内容,希望文章能够帮你解决ios – 一对二完成块所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。