Objective c 等质量字符串组合
我有多个字符串组合,我希望我的isEqualtoString能够自动找到。 现在,我已经手动搜索了所有组合Objective c 等质量字符串组合,objective-c,nsstring,combinations,Objective C,Nsstring,Combinations,我有多个字符串组合,我希望我的isEqualtoString能够自动找到。 现在,我已经手动搜索了所有组合 if([aString isEqualToString:@"xyz"] || [aString isEqualToString:@"zxy"] || [aString isEqualToString:@"yzx"] || [aString isEqualToString:@"xzy"] etc...){} 如果您只想知道其中是否有匹配项,可以将所有候选项(xyz、zxy,…)放入NSAr
if([aString isEqualToString:@"xyz"] || [aString isEqualToString:@"zxy"] || [aString isEqualToString:@"yzx"] || [aString isEqualToString:@"xzy"] etc...){}
如果您只想知道其中是否有匹配项,可以将所有候选项(xyz、zxy,…)放入
NSArray
中,并在数组上调用containsObject:aString
。如果您需要知道匹配的字符串,请使用indexOfObject:aString
。您可以编写一个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
谢谢你。如果我曾经成为一名硬核开发人员,并且想要提升我的代码外观,那么我将使用这个^ ^。同时,我认为containsObject会更容易工作。谢谢你的回答!这看起来简单多了,我喜欢简单。