NSArray / NSDictionary:不区分大小写的元素查找?

时间:2013-06-09 23:13:59

标签: ios objective-c search nsarray nsdictionary

是否可以使用indexOfObject: NSArrayobjectForKey: NSDictionary的{​​{1}}而不区分大小写?

所以,如果我有一个数组:

@[@"Apple", @"Banana", @"Peach"]

然后

[array indexOfObject:@"apple"]

可以给我0?

由于

1 个答案:

答案 0 :(得分:1)

如果额外的工作和一个坏主意,这是可能的。区分大小写是一种人类的想法。当词典中的键是字符串(通常它们应该是)时,Apple和apple之间的区别是不同的unichar和不同的哈希值。

尝试这样做会很难降低性能。

也就是说,您可能有充分的理由这样做,在这种情况下,您可以获取所有键的数组,使用caseInsensitiveCompare执行containsObject然后在索引匹配时使用该对象。但你可能仍然一无所获。

如果您的密钥来自用户输入或JSON或其他东西,您可能最好清理它们或以其他方式将它们标准化。