SwiftからiOSでUUIDを生成する


296

私のiOS Swiftアプリで、テーブルキーとして使用するランダムなUUID(GUID)文字列を生成したいのですが、次のスニペットが機能しているようです:

let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil))

これは安全ですか?

または、おそらくより良い(推奨される)アプローチはありますか?


5
let uuid = NSUUID.UUID()。UUIDStringを使用することもできます
Yatheesha BL


1
編集の代わりに、答えの1つを受け入れてください。@AhemdAlHafoudhが提案した方法でやっているので、彼の答えを受け入れることをお勧めします。
DarkDust 2014年

ああ、わかった。ありがとう...完了。
zacjordaan 2014年

回答:


627

これを試してください:

let uuid = NSUUID().uuidString
print(uuid)

スイフト3/4/5

let uuid = UUID().uuidString
print(uuid)

6
XCode 6.1で、次のエラーが見つかりました: 'UUID()'は使用できません:オブジェクト構築 'NSUUID()'を使用してください。それをNSUUID()。UUIDStringに変更する必要があります
ohyes

上記の提案はを呼び出すことと同じNSUUID.init().UUIDStringですよね?
Kyle Redfearn、2015年

4
Xcode 8(ベータ)、iOS 10およびSwift 3以降、名前が変更されましたUUID().uuidString
califrench

これを答えに追加することを気にしますか?
Ahmed Al Hafoudh 2016

1
こんにちは私はこのメソッドUUID()。uuidStringを使用しましたが、使用するたびに異なる文字列を返すようです。インストールするアプリでのみ1の値にしたいです。洞察はありますか?
nerezza

28

NSUUID APIを使用することもできます。

let uuid = NSUUID()

文字列値を取り戻したい場合は、を使用できますuuid.UUIDString

NSUUIDiOSの6とアップから入手可能です。



13

Swift 3の場合、多くのFoundationタイプで「NS」接頭辞が削除されているため、でアクセスしUUID().uuidStringます。


8

また、以下でcan使用しlowercaseます

let uuid = NSUUID().UUIDString.lowercaseString
print(uuid)

出力

68b696d7-320b-4402-a412-d9cee10fc6a3

ありがとうございました !


1
ありがとう。今ですNSUUID().uuidString.lowercased()
Patrick Dura 2017

4
このように小文字を使用する利点は何ですか?
ルークスタニア

多分それは大文字よりも目にもっと楽しいですか?
tgunr

5

同じものが生成されるたびに:

if let uuid = UIDevice.current.identifierForVendor?.uuidString {
    print(uuid)
}

新しいものが生成されるたびに:

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