Swift'ten iOS'ta bir UUID oluşturun


297

İOS Swift uygulamamda , tablo anahtarı olarak kullanılmak üzere rastgele UUID ( GUID ) dizeleri oluşturmak istiyorum ve bu snippet'in işe yaradığı görülüyor :

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

Bu güvenli mi?

Veya belki daha iyi (önerilen) bir yaklaşım var mı?


5
Ayrıca let uuid = NSUUID.UUID () kullanabilirsiniz. UUIDString
Yatheesha BL


1
Düzenlemeniz yerine lütfen cevaplardan birini kabul edin. @AhemdAlHafoudh tarafından önerilen şekilde yaptığınız için, cevabını kabul etmenizi öneririm.
DarkDust

Ah, anladım. Teşekkürler ... bitti.
zacjordaan

Yanıtlar:


628

Bunu dene:

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

Hızlı 3/4/5

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

6
XCode 6.1'de şu hatayı buldum: 'UUID ()' kullanılamıyor: 'NSUUID ()' nesne yapısını kullanın. Bunu NSUUID () olarak değiştirmeliyiz UUIDString
ohyes

Yukarıdaki öneri çağırmaktan farklı değil NSUUID.init().UUIDString, değil mi?
Kyle Redfearn

4
Xcode 8 (beta), iOS 10 ve Swift 3'ten itibaren bu yeniden adlandırıldıUUID().uuidString
califrench

Bunu cevaba eklemek ister misiniz?
Ahmed Al Hafoudh

1
Merhaba ben UUID () .UuidString bu yöntemi kullandım ama her kullandığımda farklı dize döndürmek gibi görünüyor, ben sadece yüklediğim uygulama için 1 değer olmasını istiyorum. Herhangi bir fikir?
nerezza

28

Yalnızca NSUUID API'sını da kullanabilirsiniz :

let uuid = NSUUID()

Dize değerini geri almak istiyorsanız kullanabilirsiniz uuid.UUIDString.

NSUUIDİOS 6 ve sonraki sürümlerden edinilebileceğini unutmayın .


18

İçin Swift 4 ;

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

3
Mezarlık nitpick burada ama küçük UUID neden normal bir UUID tercih tercih bilmiyorum.
Alex Kornhauser

13

Swift 3 için, birçok Foundationtür 'NS' önekini düşürdü, böylece ona erişeceksiniz UUID().uuidString.


8

Ayrıca aşağıdaki altında cankullanınlowercase

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

Çıktı

68b696d7-320b-4402-A412-d9cee10fc6a3

Teşekkür ederim !


1
Teşekkürler. şimdiNSUUID().uuidString.lowercased()
Patrick Dura

4
Bunun gibi küçük harf kullanmanın yararı nedir?
Luke Stanyer

Belki de göz için büyük harflerden daha hoştur?
tgunr

5

Her üretildiğinde aynı:

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

Her defasında yeni bir tane oluşturulur:

let uuid = UUID().uuidString
print(uuid)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.