Convert Int to UInt32 in Swift

前端 未结 3 1441
悲&欢浪女
悲&欢浪女 2021-02-11 13:33

Im making a Tcp client and therefore using the CFStreamCreatePairWithSocketToHost which is expecting an UInt32 for the second parameter.

Here is a sample of

3条回答
  •  夕颜
    夕颜 (楼主)
    2021-02-11 14:01

    Nikos M.'s answer might overflow because Swift Ints are 64 bit now, and Swift will crash when the default UInt32 initializer overflows. If you want to avoid overflow, use the truncatingBitPattern initializer.

    If you're sure your data won't overflow, then you should use the default initializer because an overflow represents invalid data for your application. If you're sure your data will overflow, but you don't care about truncation (like if you're building hash values or something) then you probably want to truncate.

    let myInt: Int = 576460752303423504
    let myUInt32 = UInt32(truncatingBitPattern: myInt)
    

提交回复
热议问题