2014-06-26 145 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()