斯威夫特:为什么??不能用于字符串



我得到了这个错误:

二进制运算符"??"不能应用于"String?"类型的操作数和"UUID">

此处:

Binary operator '??' cannot be applied to operands of type 'String?' and 'UUID'

为什么???用于选项,而不是?

字符串和UUID不是同一类型,因此无法进行比较。

如果要比较它们,可以使用UUID.uuidString属性将UUID的值作为字符串获取。

let x: String? = nil
let uuid = UUID()
let y: String = x ?? uuid.uuidString

首先,将设备UDID获取为字符串,然后可以比较

let udid = UIDevice.current.identifierForVendor!.uuidString

最新更新