-1

私は2つの文字列を持っています:

ahFkZXZ-cHV6emxlZmxvd2RldnIZCxILUHV6emxlSW1hZ2UYgICAgICAgIBcDA
ahFkZXZ-cHV6emxlZmxvd2RldnIZCxILUHV6emxlSW1hZ2UYgICAgICAgIBCDA

これら 2 つの文字列は、最後から 3 番目の文字 'C' が一方が大文字で、もう一方が小文字であることを除いて、ほぼ同一であることがわかります。これらの名前に基づいてファイルをディスクに保存しています - Mac OS X は大文字と小文字を区別しないファイル システムであるため、この名前の 2 番目のファイルは最初のファイルを上書きします。

私の当面の考えは、文字列内の文字を繰り返し処理し、大文字を小文字に「マップ」することです。たとえば、すべての大文字を 2 つの小文字に置き換えます (「C」は「cc」になります)。

この実装の一意性に問題はありますか? Objective C でこれを達成する最も簡単な方法は何ですか? 各文字を繰り返し処理するのは簡単ですが、これをより簡単にする組み込みのヘルパー関数があるかどうかに興味がありました。

また、Mac OSX/iOS でのファイル名の長さの制限についてもよくわかりません。

*また、これは iOS アプリ用ですが、シミュレーターでバグが発生するため、これを解決したいだけです。

4

2 に答える 2

0

それは間違っている。

考えられる解決策:

  1. 文字列を大文字/小文字に変換します
  2. 両方の「キー」が有効で、2 つの別個のファイルが必要な場合は、キーをファイル名として使用しないでください。一意の (たとえば、インクリメントする) ファイル名を割り当て、キーをファイル名にマッピングする別のファイルを用意します。
于 2013-04-18T09:51:52.873 に答える
0

文字列の最後に文字列ハッシュを追加してみませんか? このハッシュを文字列に追加すると、ケースごとに一意の文字列ができます。

関数は次のとおりです。 [str ハッシュ];

于 2013-04-18T09:56:54.453 に答える