【发布时间】:2015-10-02 18:55:18
【问题描述】:
我正在使用 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 方法。命名此方法的最佳方法是什么?
【问题讨论】:
标签: ios objective-c oop architecture language-concepts