27

.NET に相当する組み込み関数はありますか

Guid.NewGuid();

ココアで?

550e8400-e29b-41d4-a716-446655440000私の望みは、一意の識別子を表す行に沿って文字列を生成することです。

4

8 に答える 8

43

UUID は CFUUID ライブラリによって Core Foundation で処理されます。探している関数はCFUUIDCreateです。

さらに検索するための参考情報: これらは UUID として最も一般的に知られており、GUID という用語は Microsoft の世界以外ではあまり使用されていません。その検索語でもっと運がいいかもしれません。

于 2008-11-15T01:13:04.747 に答える
39

少なくとも MacOSX 10.5.x では、コマンド ライン ツール「uuidgen」を使用して文字列を取得できます。

$ uuidgen

054209C4-3873-4679-8104-3C18AE780512

このコマンドにはオプション -hdr もあり、ヘッダー スタイルで便利に生成されます。

詳細については、マンページを参照してください。

于 2009-04-14T13:59:55.803 に答える
32

いくつかのコード:

文字列 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 バイトの構造体です。

于 2008-11-15T23:16:29.380 に答える
19

または、uuidgenコマンド ライン ツールがあります。

于 2008-11-15T02:04:51.943 に答える
10

10.8以降、次も使用できます。

NSString *uuidString = [[NSUUID UUID] UUIDString];
于 2014-02-28T10:53:30.340 に答える
4

ウィキペディアの記事とCore Foundationのページをご覧ください。

于 2008-11-15T00:41:41.097 に答える
2

10.3くらいから使えます[[NSProcessInfo processInfo] globallyUniqueString]。ただし、これは現在UUID を生成しますが、それを行うことは一度も保証されていないため、一意の文字列だけでなくUUIDが本当に必要な場合は、CFUUID を使用する必要があります。

于 2008-11-15T03:34:06.613 に答える