-1

有没有办法使用indexOfObject:NSArrayobjectForKey:区分NSDictionary大小写?

所以如果我有一个数组:

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

然后

[array indexOfObject:@"apple"]

能给我0吗?

谢谢

4

1 回答 1

1

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

尝试以硬方式执行此操作会降低性能。

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

如果您的密钥来自用户输入或 JSON 或其他内容,您最好先对它们进行清理或以其他方式对其进行规范化。

于 2013-06-09T23:25:03.787 回答