iOSでUUIDを生成する方法


回答:


175

試してみてください:

CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);

更新:

iOS 6以降、UUIDを生成する簡単な方法があります。そしていつものように、それを行うには複数の方法があります:

UUID文字列を作成します。

NSString *uuid = [[NSUUID UUID] UUIDString];

UUIDを作成します。

[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init]; 

タイプのオブジェクトを作成し、NSConcreteUUIDに簡単にキャストできNSString、次のようになります。BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

ドキュメントからのメモ:

注: NSUUIDクラスは、CoreFoundationのCFUUIDRefとフリーダイヤルでブリッジされていません。必要に応じて、UUID文字列を使用してCFUUIDとNSUUIDの間で変換します。2つのNSUUIDオブジェクトは、ポインター値で比較できるとは限りません(CFUUIDRefのように)。isEqual:を使用して、2つのNSUUIDインスタンスを比較します。


6
iOS 6を使用している場合は、NSUUIDを使用できます。NSString* uuid = [[NSUUID UUID] UUIDString];
Eli Burke

2
1行目でCFUUIDRef udidは、おそらくCFUUIDRef uuidUDID(Unique Device Identifier)とUUID(Universally Unique Identifier)の潜在的な混乱を避けるためです
CgodLEY 2014


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

どんなに単純であっても、説明なしにコードを残すだけではいけません
Sirens 2014年

エラー、1年半後のXDについてコメントするために私の特定の返信を選択した理由がわかりません。
Bergasms 2014年

私はそれが1.5歳であることに気づいていませんでした..まあ、それはうまく機能します.. :)
サイレン2014年

3
-(NSString*) myUUID()
{
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}

1

iOS 5以前のバージョンではCFUUIDを使用でき、iOS 6および7ではNSUUIDを使用できます。より安全にするために、UUIDをキーチェーンに保存できます。


0
- (NSString*)generateGUID{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [NSString stringWithFormat:@"%@", string];
}

1
コードのみの回答は、コミュニティには役立ちません。回答方法
JimHawkins 2017年

-1

Swift 5.0の場合、これを使用します。

    let uuidRef = CFUUIDCreate(nil)
    let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
    let uuid = uuidStringRef as String? ?? ""
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.