将您的字符串放入NSDictionary:
NSNull *nullValue = [NSNull null];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:nullValue, nullValue, ..., nil forKeys:@"Box", @"Ball", ..., nil];
if ([dictionary objectForKey:var]) {
// var matches one of the keys, run function
}
else {
// var doesn't match any of the keys, do something else
}
字典查找是 O(1),而数组查找可能是 O(log n)。对于 15 个元素来说没什么大不了的,但作为一般规则,字典或集合可能会表现得更好。如果您经常进行此搜索/比较,请考虑一些事情。
编辑
正如我所提到的,NSSet 也将在 O(1) 时间内进行查找:
NSSet *comparisonSet = [NSSet setWithObjects:@"Box", @"Ball", ..., nil];
if ([comparisonSet containsObject:var]) {
// var matches set object, run function
}
else {
// var doesn't match any of the set objects, do something else
}
更简洁的代码,当然,但我认为NSSet 实例的创建时间要长得多。但是你只需要做一次,对吧?