Boo*_*sby 1 block objective-c ios objective-c-blocks
最佳做法是仅对方法使用一个块参数.
是否可以传递多个块参数; 还是应该避免这种情况?
具体来说,这里有一些我正在使用的选项(我希望使用第一个):
-(void) doSomethingWithSuccessBlock:(void(^)(void))successBlock withFailureBlock:(void (^)(NSError *)) failureBlock
Run Code Online (Sandbox Code Playgroud)
要么
-(BOOL) didDoSomethingWithFailureBlock:(void (^)(NSError *)) failureBlock
Run Code Online (Sandbox Code Playgroud)
要么
-(void) doSomethingWithCallbackBlock:(void (^)(BOOL, NSError *)) callbackBlock
Run Code Online (Sandbox Code Playgroud)
使用多个块作为参数将扭曲你的思维,弯曲你的脊椎,让敌人赢得战争.(用乔治卡林的话来说)
除了开玩笑之外,只有1个块参数是一个很好的目标,但正如其他人所指出的那样,Apple有许多类的方法需要多个块.在设计使用多个块参数的API之前,花一些时间考虑替代方案,并思考它对代码的可读性和可维护性的作用.有没有更简单的方法来实现相同的目标?如果多个块是实现目标的最简洁方法,那么使用它.
我认为你的方法示例同时采用成功块和失败块是非常合理的.您可以将其重构为一个块,该块接受BOOL参数"成功"并询问块中的该参数以决定要执行的操作.(CAAnimation委托方法animationDidStop:finished:
使用这种方法.实际上,UIView动画中的完成块也是如此,想到它.)
您必须决定是否使方法和传递给它的块更简单,更清晰或更复杂.
归档时间: |
|
查看次数: |
2928 次 |
最近记录: |