isEqualToString组合

时间:2011-05-26 21:28:54

标签: objective-c nsstring combinations

我有多个字符串组合,我想让isEqualtoString自动查找。 现在,我手动搜索了所有组合。

if([aString isEqualToString:@"xyz"] || [aString isEqualToString:@"zxy"] || [aString isEqualToString:@"yzx"] || [aString isEqualToString:@"xzy"] etc...){}

2 个答案:

答案 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