我有一个委托函数,要求代理UIActivityIndicatorViewStyle
。
@protocol StatusViewCustomizationDelegate <NSObject>
@optional
-(UIActivityIndicatorViewStyle)activityIndicatorStyle;
@end
在私有函数内部,我检查委托是否响应此选择器,如果它响应,我调用该方法。以下是代码:
-(void)configureView
{
UIActivityIndicatorViewStyle activityIndicatorStyleFromDelegate;
if ([self.delegate respondsToSelector:@selector(activityIndicatorViewStyle)])
{
activityIndicatorStyleFromDelegate = [self.delegate activityIndicatorStyle];
}
}
检查我在activityIndicatorStyleFromDelegate
变量中收到的枚举值是一个有效的UIActivityIndicatorViewStyle
枚举值的正确方法是什么?
编辑:
UIActivityIndicatorViewStyle
是iOS定义的枚举。
typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) {
UIActivityIndicatorViewStyleWhiteLarge,
UIActivityIndicatorViewStyleWhite,
UIActivityIndicatorViewStyleGray,
};
答案 0 :(得分:5)
通常,在检查枚举值时,您只能使用两种方法之一。
如果枚举值是连续的序列,您可以检查该值是否在其范围内:
if (activityIndicatorStyle >= UIActivityIndicatorViewStyleWhiteLarge &&
activityIndicatorStyle <= UIActivityIndicatorViewStyleGray) {
NSLog(@"Good");
} else {
NSLog(@"Bad");
}
否则您只需依次对每个值进行检查:
switch (activityIndicatorStyle) {
case UIActivityIndicatorViewStyleGray:
case UIActivityIndicatorViewStyleWhite:
case UIActivityIndicatorViewStyleWhiteLarge:
NSLog(@"Good");
break;
default:
NSLog(@"Bad");
}
答案 1 :(得分:1)
使用此代码:
if (style >= UIActivityIndicatorViewStyleWhiteLarge &&
style <= UIActivityIndicatorViewStyleGray) {
// valid
} else {
// invalid
}
答案 2 :(得分:0)
您可以获取枚举的最后一个值,并比较所提供的枚举是否小于或等于枚举的最后一个值,因此:
num_types
此外,常见的约定是LiME,您可以检查枚举是否小于 dataGrid1.TableStyles.Clear();
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = table1.TableName;
foreach (DataColumn item in table1.Columns)
{
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 80;
tbcName.MappingName = item.ColumnName;
tbcName.HeaderText = item.ColumnName;
tableStyle.GridColumnStyles.Add(tbcName);
}
dataGrid1.TableStyles.Add(tableStyle);
,但这在您的上下文中是不可能的。