如何在swift中将UInt转换为Int?
我需要将一个变量从NSUInt转换为Int,将其作为参数传递给allocate 我尝试使用Int()初始化,但编译器拒绝如何在swift中将UInt转换为Int?,swift,type-conversion,int,uint,Swift,Type Conversion,Int,Uint,我需要将一个变量从NSUInt转换为Int,将其作为参数传递给allocate 我尝试使用Int()初始化,但编译器拒绝无法使用类型为“(UInt?)的参数调用类型为“Int”的初始化器 这是变量:nsu整数计数 这是对allocatelet outPut=UnsafeMutablePointer.allocate(容量:计数) 如果不进行转换,编译器将生成以下错误: 无法将类型“UInt”的值转换为预期的参数类型“Int”您需要使用位模式初始化器 let unsignedInt = Int(b
无法使用类型为“(UInt?)的参数调用类型为“Int”的初始化器
这是变量:nsu整数计数
这是对allocatelet outPut=UnsafeMutablePointer.allocate(容量:计数)
如果不进行转换,编译器将生成以下错误:
无法将类型“UInt”的值转换为预期的参数类型“Int”
您需要使用位模式初始化器
let unsignedInt = Int(bitPattern: UInt)
但这不会考虑溢出情况。因为它是可选的,所以需要将其展开
var x: UInt?
if let z = x {
let y = Int(exactly: z)
}
请注意,Int(确切地说:)
也会返回一个可选值,因此您可能需要使用guard
语句或另一个语句(如果让…
正如vacawama Int(z)所指出的,更新可能会崩溃如果x
对于Int
来说太大,这将崩溃。我建议如果让z=x,让y=Int(正好是:z){