有没有办法使用indexOfObject:
或NSArray
不objectForKey:
区分NSDictionary
大小写?
所以如果我有一个数组:
@[@"Apple", @"Banana", @"Peach"]
然后
[array indexOfObject:@"apple"]
能给我0吗?
谢谢
有没有办法使用indexOfObject:
或NSArray
不objectForKey:
区分NSDictionary
大小写?
所以如果我有一个数组:
@[@"Apple", @"Banana", @"Peach"]
然后
[array indexOfObject:@"apple"]
能给我0吗?
谢谢
如果额外的工作和一个坏主意,这是可能的。区分大小写是人类的想法。当字典中的键是字符串(通常应该是)时,Apple 和 apple 之间的区别是不同的 unichar 和不同的哈希值。
尝试以硬方式执行此操作会降低性能。
也就是说,您可能有充分的理由这样做,在这种情况下,您可以获得所有键的数组,使用 caseInsensitiveCompare 执行 containsObject,然后在索引匹配时使用该对象。但你可能仍然一无所获。
如果您的密钥来自用户输入或 JSON 或其他内容,您最好先对它们进行清理或以其他方式对其进行规范化。