Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在swift中将UInt转换为Int?_Swift_Type Conversion_Int_Uint - Fatal编程技术网

如何在swift中将UInt转换为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

我需要将一个变量从NSUInt转换为Int,将其作为参数传递给allocate

我尝试使用Int()初始化,但编译器拒绝
无法使用类型为“(UInt?)的参数调用类型为“Int”的初始化器

这是变量:
nsu整数计数
这是对allocate
let 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){