5

iOSでユーザー入力文字列を有効なファイル名に変換するときに考慮する必要がある特別な考慮事項は何ですか?役立つ方法はありますか?NSStringまたはに明らかなものは見つかりませんでしたNSFileManager

コンテキストにより、ユーザーはアプリ内で検索を保存できます。舞台裏では、これらの名前はコアデータ永続ストアの名前に変換されます。実際のファイル名がユーザーに公開されることはありません。

前もって感謝します。

4

3 に答える 3

2

主な関心事はユーザーエクスペリエンスです。ユーザーはファイルを識別するために何でも入力できます。データに戻ると、彼女は入力したのとまったく同じ文字列が表示されることを期待していました。

この情報を処理する最良の方法は、実際の入力を別の場所に保存し、マッピングを使用して実際のファイルにアクセスすることです。

plistファイルに保存されている辞書を使用することもできます。ディクショナリには、キーとしてのユーザー入力と値としてのUUIDが含まれます。次に、ファイル名としてUUIDを使用してファイルが保存されます。このようにして、ファイル名が常に有効であり、ユーザーが無効なファイル名を恐れることなく、好きなように入力できることを確認できます。

無効な文字を削除するだけの利点は、ユーザーが必要に応じて、たとえば「/」や「//」を有効な識別子として使用できることです。

于 2013-03-15T15:08:59.937 に答える
1

検索を保存するだけの場合は、ファイルやファイル名は必要ありません。これを行うにはいくつかの方法がありますが、検索を保存するためにCoreDataを使用しないのはなぜですか?「検索」エンティティを作成して、そこにすべての関連情報を保存することができます。

ファイルは必要ありません。コアデータの使用についてはすでに理解しているので、ここでも使用してください。

于 2013-03-15T14:58:27.120 に答える
0

不正な文字を置き換えます。このようなもの:

filename = [[filename componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] componentsJoinedByString:@"" ];
filename = [[filename componentsSeparatedByCharactersInSet:[NSCharacterSet illegalCharacterSet]] componentsJoinedByString:@"" ];
filename = [[filename componentsSeparatedByCharactersInSet:[NSCharacterSet symbolCharacterSet]] componentsJoinedByString:@"" ];
fileURLString = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
fileURL = [NSURL URLWithString:fileURLString];

ファイルが存在するかどうかを確認してください。このようなもの:

[[NSFileManager defaultManager] fileExistsAtPath:[fileURL absoluteString]]
于 2013-03-15T14:56:52.707 に答える