我正在使用 Objective-C 来解决这个问题,但这并不是特定于语言的。
我的用户类中有以下方法,
+(BOOL)canPerform:(NSString *)string
withCompletion:(void(^)(BOOL success,NSError *error))block;
在我的视图控制器中
-(void)performTask{
if([User canPerform:@"My String" withCompletion:^(BOOL success, NSError *error) {
if (success) {
NSLog(@"Task success!");
}
else{
NSLog(@"Task Failed with error : %@,error.localizedDescription");
}
}])
{
NSLog(@"Can perform task");
}
else{
NSLog(@"Can not perform task");
}
}
没有必要提及我正在执行什么任务。这不是我的问题。
我的问题是:
这是一个好的编程习惯吗?使用接受块的 BOOL 方法作为 if 语句的条件?
这个方法
[User canPerform]
做了两件事。首先,它检查它是否可以执行此特定任务,如果可以,它确实执行该任务。但是方法名称并不能反映这一点。方法名称是canPeform
. 我可以使用ifCanThenPeformThisTask
,但这听起来很奇怪,感觉不像是 BOOL 方法。命名此方法的最佳方法是什么?