Im making a Tcp client and therefore using the CFStreamCreatePairWithSocketToHost
which is expecting an UInt32 for the second parameter.
Here is a sample of what I'm trying to do.:
func initNetwork(IP: String, Port: Int) {
// relevant stuff
//Convert Port:Int to UInt32 to make this shit work!
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, IP as NSString , Port , &readStream, &writeStream)
// Irelevant stuff
}
I have been looking around for a solution for some time now, and i can't seem to find one!
A 32-bit unsigned integer value type.
The UInt32 value type represents unsigned integers with values ranging from 0 to 4,294,967,295. UInt32 provides methods to compare instances of this type, convert the value of an instance to its String representation, and convert the String representation of a number to an instance of this type.
You can do it easily:
var x = UInt32(yourInt)
Nikos M.'s answer might overflow because Swift Int
s 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With