2014-06-26 67 views
204

iOS上UUID在我的iOS斯威夫特程序,我想生成隨機UUID(GUID)字符串用作表鍵,這個片段出現工作:生成斯威夫特

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

這安全嗎?

或者是否有更好的(推薦)方法?

+1

爲什麼它不安全? – holex

+5

你也可以使用let uuid = NSUUID.UUID()。UUIDString –

+0

看一看http://stackoverflow.com/questions/3773776/corefoundation-vs-foundation –

回答

435

試試這個:

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

斯威夫特3

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

在XCode 6.1中,我發現這個錯誤: 'UUID()'不可用:使用對象構造'NSUUID()'。我們應該將其更改爲NSUUID()。UUIDString – ohyes

+0

完成 - 更新的答案正確顯示NSUUID()。UUIDString – Lee

+0

上述建議與調用'NSUUID.init().UUIDString'沒有什麼不同,對吧? –

25

你也可以只使用NSUUID API:

let uuid = NSUUID() 

如果你想要得到的字符串值回了,你可以使用uuid.UUIDString

請注意,NSUUID可從iOS 6及以上。

3

你也can使用lowercase下低於

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

輸出

68b696d7-320b-4402-a412-d9cee10fc6a3

謝謝!

+1

謝謝。它現在是'NSUUID() .uuidString.lowercased()' –

10

對於Swift 3,許多Foundation類型都刪除了'NS'前綴,因此您可以通過UUID().uuidString訪問它。

3

對於斯威夫特4;

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