主调方:
1、
[GammaController adjustmentForKeysEnabled:@"dimEnabled", @"rgbEnabled", @"whitePointEnabled", nil]
va_list args;
va_start(args, firstKey);
BOOL adjustmentsEnabled = [GammaController adjustmentForKeysEnabled:firstKey withParameters:args];
va_end(args);
}
GammaController.h
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey, ... NS_REQUIRES_NIL_TERMINATION;
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey withParameters:(va_list)valist;
GammaController.m
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey, ... {
va_list args;
va_start(args, firstKey);
BOOL adjustmentsEnabled = [self adjustmentForKeysEnabled:firstKey withParameters:args];
}
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey withParameters:(va_list)valist
{
BOOL adjustmentsEnabled = NO;
for (NSString *arg = firstKey; arg != nil; arg = va_arg(valist, NSString*))
{
if ([groupDefaults boolForKey:arg]){
adjustmentsEnabled = YES;
break;
}
}
return adjustmentsEnabled;
}
1、
[GammaController adjustmentForKeysEnabled:@"dimEnabled", @"rgbEnabled", @"whitePointEnabled", nil]
2、
+ (BOOL)checkAlertNeededWithViewController:(UIViewController*)vc andExecutionBlock:(void(^)(UIAlertAction *action))block forKeys:(NSString *)firstKey, ... {va_list args;
va_start(args, firstKey);
BOOL adjustmentsEnabled = [GammaController adjustmentForKeysEnabled:firstKey withParameters:args];
va_end(args);
}
GammaController.h
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey, ... NS_REQUIRES_NIL_TERMINATION;
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey withParameters:(va_list)valist;
GammaController.m
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey, ... {
va_list args;
va_start(args, firstKey);
BOOL adjustmentsEnabled = [self adjustmentForKeysEnabled:firstKey withParameters:args];
va_end(args);
}
+ (BOOL)adjustmentForKeysEnabled:(NSString *)firstKey withParameters:(va_list)valist
{
BOOL adjustmentsEnabled = NO;
for (NSString *arg = firstKey; arg != nil; arg = va_arg(valist, NSString*))
{
if ([groupDefaults boolForKey:arg]){
adjustmentsEnabled = YES;
break;
}
}
return adjustmentsEnabled;
}