我有多个字符串组合,我想让isEqualtoString自动查找。 现在,我手动搜索了所有组合。
if([aString isEqualToString:@"xyz"] || [aString isEqualToString:@"zxy"] || [aString isEqualToString:@"yzx"] || [aString isEqualToString:@"xzy"] etc...){}
答案 0 :(得分:5)
如果您只是想知道它们中的任何一个是否匹配,您可以将所有候选项(xyz,zxy,...)放在NSArray
中并在数组上调用containsObject:aString
。如果您需要知道哪个字符串匹配,请使用indexOfObject:aString
。
答案 1 :(得分:4)
您可以编写一个执行该任务的NSString类别:
@interface NSString (isEqualToAnyStringAddition)
- (BOOL)isEqualToAnyString:(NSString *)firstString, ... NS_REQUIRES_NIL_TERMINATION;
@end
@implementation NSString (isEqualToAnyStringAddition)
- (BOOL)isEqualToAnyString:(NSString *)firstString, ...
{
if([self isEqualToString:firstString])
return YES;
va_list arguments;
va_start(arguments, firstString);
NSString *string;
while((string = va_arg(arguments, NSString *)))
{
if([self isEqualToString:string])
{
va_end(arguments);
return YES;
}
}
va_end(arguments);
return NO;
}
@end