如何快速将UInt转换为Int?

时间:2019-09-25 11:58:28

标签: swift type-conversion int uint

我需要将变量从NSUInt转换为Int,以将其作为要分配的参数传递。

我尝试使用Int()进行初始化,但是编译器拒绝cannot invoke initializer for type 'int' with an argument of type '(UInt?)'

这是变量:NSUInteger count 这是分配let outPut = UnsafeMutablePointer<Float>.allocate(capacity: count)

的调用

没有进行转换,编译器将生成此错误: cannot convert value of type 'UInt?' to expected argument type 'Int'

2 个答案:

答案 0 :(得分:2)

这是因为它是可选的,您需要将其拆开

var x: UInt?

if let z = x {
    let y = Int(exactly: z) 
}

请注意,Int(exactly:)也返回一个可选值,因此您可能想使用guard语句或其他if let...

vacawama Int(z)指出的

更新可能会崩溃

答案 1 :(得分:0)

您需要使用位模式初始化程序。

let unsignedInt = Int(bitPattern: UInt)

但这不会照顾溢出情况。