我正在调用一个方法来设置状态,在本例中为 animateState。状态参数可以是定义的集合之一:例如“隐藏”、“显示”、“事件”、“不活动”。所以它比 BOOL 更重要,但比开放的 NSString 更独特。
目前我正在通过使用 NSString 解决这个问题,并使用它的 isEqual 方法检查状态。它有效但不理想。
-(void) animateState:(NSString*)state{
if ([state isEqual:@"hide"]){
...
} else if ([state isEqual:@"show"]){
...
} else if ([state isEqual:@"active"]){
...
} else if ([state isEqual:@"inactive"]){
...
}
}
如何限制参数并最终提高 if/switch 检查的效率?这种情况下有什么最佳做法吗?
最佳答案
enum
在这里会做得很好,在头文件中的某处定义 enum
:
typedef enum{
AnimateStateHide,
AnimateStateShow,
AnimateStateActive,
AnimateStateInactive
} AnimateState;
然后你可以这样调用你的方法:
-(void) animateState:(AnimateState)state{
switch(state) {
case AnimateStateHide:
//Code here;
break;
case AnimateStateShow:
//Code here;
break;
case AnimateStateActive:
//Code here;
break;
case AnimateStateInactive:
//Code here;
break;
}
}
关于ios - 如何捕获状态 - 比 BOOL 更灵活但比 NSString 更独特,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15704746/