在目标c中比较一个字符串与多个字符串的最优雅/有效的方法?

itg*_*awa 1 objective-c

我有一个字符串(tagName),我想知道它是否匹配以下任何字符串.最好/最有效的方法是什么?使用数组并循环通过它?或者这种丑陋的方式是最好的方式?

if ([tagName isEqualToString:@"a"] ||
            [tagName isEqualToString:@"dd"] ||
            [tagName isEqualToString:@"li"] ||
            [tagName isEqualToString:@"span"] ||
            [tagName isEqualToString:@"br"] ||
            [tagName isEqualToString:@"b"] ||
            [tagName isEqualToString:@"big"] ||
            [tagName isEqualToString:@"em"] ||
            [tagName isEqualToString:@"i"] ||
            [tagName isEqualToString:@"u"] ||
            [tagName isEqualToString:@"small"] ||
            [tagName isEqualToString:@"strong"] ||
            [tagName isEqualToString:@"sub"] ||
            [tagName isEqualToString:@"sup"] ||
            [tagName isEqualToString:@"ins"] ||
            [tagName isEqualToString:@"del"] ||
            [tagName isEqualToString:@"code"] ||
            [tagName isEqualToString:@"kbd"] ||
            [tagName isEqualToString:@"samp"] ||
            [tagName isEqualToString:@"tt"] ||
            [tagName isEqualToString:@"var"] ||
            [tagName isEqualToString:@"pre"] || 
            [tagName isEqualToString:@"abbr"] ||
            [tagName isEqualToString:@"center"] ||
            [tagName isEqualToString:@"acronym"] ||
            [tagName isEqualToString:@"address"] ||
            [tagName isEqualToString:@"bdo"] ||
            [tagName isEqualToString:@"blockquote"] ||
            [tagName isEqualToString:@"q"] ||
            [tagName isEqualToString:@"cite"] ||
            [tagName isEqualToString:@"img"] ||
            [tagName isEqualToString:@"p"] ||
            [tagName isEqualToString:@"s"] ||
            [tagName isEqualToString:@"font"] ||
            [tagName isEqualToString:@"strike"] ||
            [tagName isEqualToString:@"caption"] ||
            [tagName isEqualToString:@"th"] ||
            [tagName isEqualToString:@"tr"] ||
            [tagName isEqualToString:@"td"] ||
            [tagName isEqualToString:@"thead"] ||
            [tagName isEqualToString:@"tbody"] ||
            [tagName isEqualToString:@"tfoot"] ||
            [tagName isEqualToString:@"col"] ||
            [tagName isEqualToString:@"colgroup"] ||
            [tagName isEqualToString:@"dfn"]
            ) {
Run Code Online (Sandbox Code Playgroud)

rob*_*off 6

static dispatch_once_t once;
static NSSet *htmlTags;
dispatch_once(&once, ^{
    htmlTags = [NSSet setWithObjects:
        @"dd", @"li", @"span",
        @"br", @"b", @"big",
        // etc.
        nil];
});

if ([htmlTags member:tagName]) {
    NSLog(@"Found it!");
}
Run Code Online (Sandbox Code Playgroud)