4

NSManagedObject に関連付けられたファイルに名前を付ける最良の方法は何でしょうか。NSManagedObject は、このファイルへの URL を保持します。

しかし、自分のファイルに一意のファイル名を作成する必要があります。使用できる自動インクリメント ID はありますか? mktemp (一時ファイルではありません) を使用するか、NSManagedObjectId をファイル名に変換する必要がありますか? しかし、問題を引き起こす可能性のある特殊文字があるのではないかと心配しています。

何を提案しますか?

編集:これらの NSManagedObjects がたくさんあり、それぞれに独自のイメージがあるため、各画像に一意の名前を生成したいと考えています。

4

4 に答える 4

3

NSProcessInfoGUIDを生成するために使用できます:

[[NSProcessInfo processInfo] globallyUniqueString]

NSManagedObjectファイルを参照するには、GUID をプロパティとして保持し、アプリケーション サポート ディレクトリからその名前でファイルを参照することをお勧めします。

于 2010-05-09T05:51:12.870 に答える
2

これを行うには良い方法があり、以前の回答の 1 つはほとんどそれでした。つまり、プロセス全体ではなく、イメージごとに GUID を生成します。一意の文字列が必要なときはいつでもこのメソッドを呼び出し、それを管理対象オブジェクトに保存します。

+ (NSString *)getUUID
{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [(NSString *)string autorelease];
}

撮影した動画や画像の保存に使用しています。

于 2010-09-08T02:07:39.650 に答える
0

iOS5 以降、大きなブロブを外部レコード ファイルに保存するオプションが追加されました。CoreData は、レコードのサイズに基づいてレコードを sqlite に格納するかどうかを決定します。

組み込みの CoreData オプションを使用して BLOB を外部の場所に保存する

于 2012-09-25T04:02:37.700 に答える
0

時間を使用して一意のファイル名を生成することを考えましたが、解決策が好きではありません。たとえば、時間がリセットまたは変更された場合、同じファイル名が 2 回取得される可能性がわずかにあります。

このテーマに関する詳しい情報がウェブ上にないことに驚いています。

于 2010-05-11T04:57:04.363 に答える