Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swift convert UInt to Int

I have this expression which returns a UInt32:

let randomLetterNumber = arc4random()%26 

I want to be able to use the number in this if statement:

if letters.count > randomLetterNumber{     var randomLetter = letters[randomLetterNumber] } 

This issue is that the console is giving me this

Playground execution failed: error: <REPL>:11:18: error: could not find an overload for '>' that accepts the supplied arguments if letters.count > randomLetterNumber{    ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ 

The problem is that UInt32 cannot be compared to an Int. I want to cast randomLetterNumber to an Int. I have tried:

let randomLetterUNumber : Int = arc4random()%26 let randomLetterUNumber = arc4random()%26 as Int 

These both cause could not find an overload for '%' that accepts the supplied arguments.

How can I cast the value or use it in the if statement?

like image 587
67cherries Avatar asked Jun 10 '14 15:06

67cherries


People also ask

What is the difference between Int and UInt in Swift?

Int8 is an Integer type which can store positive and negative values. UInt8 is an unsigned integer which can store only positive values. You can easily convert UInt8 to Int8 but if you want to convert Int8 to UInt8 then make sure value should be positive.

What is UInt32 in Swift?

A 32-bit unsigned integer value type.

How many bits is an integer in Swift?

Integers are either signed (positive, zero, or negative) or unsigned (positive or zero). Swift provides signed and unsigned integers in 8, 16, 32, and 64 bit forms. These integers follow a naming convention similar to C, in that an 8-bit unsigned integer is of type UInt8 , and a 32-bit signed integer is of type Int32 .


2 Answers

Int(arc4random_uniform(26)) does two things, one it eliminates the negative results from your current method and second should correctly creat an Int from the result.

like image 198
David Berry Avatar answered Sep 23 '22 08:09

David Berry


More simple than this, impossible:

Int(myUInteger) 
like image 39
Josh Avatar answered Sep 23 '22 08:09

Josh