在Swift中,如果运行此代码,则由于UUID格式错误,因此将显示“ nil”。
import Foundation
let id = "11111111-1111-1111-1111-badbad"
print(UUID(uuidString: id)) // prints nil
但是,在Kotlin中进行的相同测试不会失败:
import java.util.UUID
fun main() {
val id = "11111111-1111-1111-1111-badbad"
val uuid = UUID.fromString(id) // should fail; badly formatted uuid
// but prints "11111111-1111-1111-1111-000000badbad"
println(uuid)
}
在Kotlin中实现的UUID与在Swift中实现的UUID是否不同?
答案 0 :(得分:1)
您必须为UUID提供正确格式的字符串
UUID(uuidString:“ 11111111-1111-1111-1111-badbad”)
您使用的代码UUID(uuidString: "11111111-1111-1111-1111-badbad")
将返回nil,因为UUID的格式错误,还请注意,UUID仅针对真实设备而非iOS模拟器生成,因为硬件设备已向Apple网络注册访问设备令牌。
关于kotlin,现在,此val uuid = UUID.fromString(id)
函数将从上面的字符串中返回新的UUID。您正在比较两个相反的函数,其中一个检查UUID是否有效,另一个检查从字符串生成UUID。
如果要检查格式错误的uuid,请在Kotlin中使用正则表达式功能。