Swift Xcode 6.3 中的编译器在简单使用“+”运算符时失败
Swift compiler in Xcode 6.3 failing on simple use of the '+' operator
尝试使用 Swift 只会变得荒谬。我将 Xcode 从 6.2 更新到 6.3,现在编译器抱怨简单的加法。源代码行是这样的,其中 passKeyData 是一个 NSData 项:
let u8Value : UInt8 = 3 + passKeyData.length as UInt8 + 1
Swift 正在抱怨 "Ambiguous use of the '+' operator"。
这是一条有点误导性的错误消息,但是...
NSData.length
returns 和 Int
,并且您无法使用 as
从 Int
值转换为 UInt8
。您需要像这样显式构造一个 UInt8
:
let u8Value : UInt8 = 3 + UInt8(passKeyData.length) + 1
您可能还需要检查该值是否不超过 UInt8.max
(否则您将遇到运行时错误),或者如果您不介意截断它,则使用 UInt8(truncatingBitPattern: x)
合身。
尝试使用 Swift 只会变得荒谬。我将 Xcode 从 6.2 更新到 6.3,现在编译器抱怨简单的加法。源代码行是这样的,其中 passKeyData 是一个 NSData 项:
let u8Value : UInt8 = 3 + passKeyData.length as UInt8 + 1
Swift 正在抱怨 "Ambiguous use of the '+' operator"。
这是一条有点误导性的错误消息,但是...
NSData.length
returns 和 Int
,并且您无法使用 as
从 Int
值转换为 UInt8
。您需要像这样显式构造一个 UInt8
:
let u8Value : UInt8 = 3 + UInt8(passKeyData.length) + 1
您可能还需要检查该值是否不超过 UInt8.max
(否则您将遇到运行时错误),或者如果您不介意截断它,则使用 UInt8(truncatingBitPattern: x)
合身。