-1

大文字と小文字を区別せずindexOfObject:に、NSArrayまたはobjectForKey:ofを使用する方法はありますか?NSDictionary

したがって、配列がある場合:

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

それで

[array indexOfObject:@"apple"]

私に0を与えることができますか?

ありがとう

4

1 に答える 1

1

これは、余分な作業が必要な場合に可能であり、悪い考えです。大文字と小文字の区別は人間の考えです。辞書のキーが文字列の場合 (通常はそうあるべきです)、Apple と Apple の違いは、異なる unichar と異なるハッシュ値です。

これを難しい方法で行おうとすると、パフォーマンスが低下します。

そうは言っても、それを行う正当な理由があるかもしれません。その場合、すべてのキーの配列を取得し、caseInsensitiveCompare で containsObject を実行してから、インデックス マッチングでオブジェクトを使用できます。しかし、まだ何も見つからないかもしれません。

キーがユーザー入力や JSON などから来ている場合は、最初にそれらをサニタイズするか、正規化することをお勧めします。

于 2013-06-09T23:25:03.787 に答える