这个问题是关于Swift的。
这很容易产生在RFC UUID 斯威夫特得到一个斯威夫特String因为在这个阶段,苹果已经取得了斯威夫特方法,它...
func sfUUID()->String
{
return UUID().uuidString.lowercased()
}
Run Code Online (Sandbox Code Playgroud)
使用Swift时,我需要一个老式的“版本1” UUID
(例如:https : //en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_.28date-time_and_MAC_address.29)
在Swift3中有没有办法做到这一点?(仅> 9)
在Swift中,如何获取版本1 UUID。因此,可能有一些我不知道的选择UUID(),或者存在调用C调用并将结果安全地作为的困难String。
Callam的链接是实际答案。Swift可以(在这种情况下必须)调用C,所以C函数的名称就是您真正需要的。
但是这里的“ Swift”问题只是如何从Swift调用C函数,这是一项通用技能,比该特定问题更重要(并且在当前文档中并没有很好地解释)。因此,值得研究以下内容的工作方式,而不仅仅是将其作为“如何在Swift中生成v1 UUID”的答案。
var uuid: uuid_t = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
withUnsafeMutablePointer(to: &uuid) {
$0.withMemoryRebound(to: UInt8.self, capacity: 16) {
uuid_generate_time($0)
}
}
let finalUUID = UUID(uuid: uuid)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |