【问题标题】:NSArray/NSDictionary: case insensitive element lookup? [duplicate]NSArray/NSDictionary:不区分大小写的元素查找? [复制]
【发布时间】:2013-06-09 23:13:59
【问题描述】:

有没有办法在不区分大小写的情况下使用NSArrayindexOfObject:NSDictionaryobjectForKey:

所以如果我有一个数组:

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

然后

[array indexOfObject:@"apple"]

能给我0吗?

谢谢

【问题讨论】:

    标签: ios objective-c search nsarray nsdictionary


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      相关资源
      最近更新 更多