.NET に相当する組み込み関数はありますか
Guid.NewGuid();
ココアで?
550e8400-e29b-41d4-a716-446655440000
私の望みは、一意の識別子を表す行に沿って文字列を生成することです。
.NET に相当する組み込み関数はありますか
Guid.NewGuid();
ココアで?
550e8400-e29b-41d4-a716-446655440000
私の望みは、一意の識別子を表す行に沿って文字列を生成することです。
UUID は CFUUID ライブラリによって Core Foundation で処理されます。探している関数はCFUUIDCreateです。
さらに検索するための参考情報: これらは UUID として最も一般的に知られており、GUID という用語は Microsoft の世界以外ではあまり使用されていません。その検索語でもっと運がいいかもしれません。
少なくとも MacOSX 10.5.x では、コマンド ライン ツール「uuidgen」を使用して文字列を取得できます。
$ uuidgen
054209C4-3873-4679-8104-3C18AE780512
このコマンドにはオプション -hdr もあり、ヘッダー スタイルで便利に生成されます。
詳細については、マンページを参照してください。
いくつかのコード:
文字列 UUID の場合、次のクラス メソッドでうまくいくはずです。
+(NSString*)UUIDString {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
本当にバイト(文字列ではなく)が必要な場合:
+(CFUUIDBytes)UUIDBytes {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFUUIDBytes bytes = CFUUIDGetUUIDBytes(theUUID);
CFRelease(theUUID);
return bytes;
}
ここで、CFUUIDBytes はUUID バイトの構造体です。
または、uuidgen
コマンド ライン ツールがあります。
10.8以降、次も使用できます。
NSString *uuidString = [[NSUUID UUID] UUIDString];
ウィキペディアの記事とCore Foundationのページをご覧ください。
10.3くらいから使えます[[NSProcessInfo processInfo] globallyUniqueString]
。ただし、これは現在UUID を生成しますが、それを行うことは一度も保証されていないため、一意の文字列だけでなくUUIDが本当に必要な場合は、CFUUID を使用する必要があります。