web-dev-qa-db-ja.com

iOSを使用してGUID / UUIDを作成する方法

IPhoneとiPadでGUID/UUIDを作成できるようにしたい。

意図は、すべて一意の分散データのキーを作成できるようにすることです。 iOS SDKでこれを行う方法はありますか?

205
rustyshelf
[[UIDevice currentDevice] uniqueIdentifier]

IPhoneの一意のIDを返します。

編集:-[UIDevice uniqueIdentifier]は非推奨になり、App Storeからの使用が拒否されています。現在、以下の方法が推奨されるアプローチです。

複数のUUIDを作成する必要がある場合は、次の方法を使用します(ARCを使用)。

+ (NSString *)GetUUID
{
  CFUUIDRef theUUID = CFUUIDCreate(NULL);
  CFStringRef string = CFUUIDCreateString(NULL, theUUID);
  CFRelease(theUUID);
  return (__bridge NSString *)string;
}

編集:2014年1月29日:iOS 6以降をターゲットにしている場合、はるかに簡単な方法を使用できるようになりました:

NSString *UUID = [[NSUUID UUID] UUIDString];
320
Stephan Burlot

以下は、ARCに準拠した、私が使用している簡単なコードです。

+(NSString *)getUUID
{
    CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
    NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
    CFRelease(newUniqueId);

    return uuidString;
}
100
trillions

IOS 6では、次のものを簡単に使用できます。

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

詳細は Appleのドキュメント

86
Arian Sharifian

Apple開発者ドキュメントを確認すると、iPhone OS 2.0以降で CFUUID オブジェクトが利用可能であることがわかりました。

46
Henk

最も簡単な方法は、NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]を使用することです。 NSProcessInfo クラスリファレンスを参照してください。

22
Ryan McCuaig

In Swift

var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")
22
King-Wizard

In Swift 3.

var uuid = UUID().uuidString
15
Radu Diță

ObjCのGuidクラスのシンプルで高速な実装をここにアップロードしました: obj-c GUID

Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);

同様に、さまざまな文字列形式を解析できます。

7
tumtumtum