Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Swift Enums and Structs Enums Enum Members and Raw Values

Patrick Glenn
Patrick Glenn
1,363 Points

What does it mean by "The variable 'turtleSpeed' was expected to be of type 'Int, but is wasn't."?

Im on step 2 of the Challenge.

enum.swift
enum Speed: Int {
    case Slow = 10
    case Medium = 50
    case Fast = 100
}
var turtleSpeed = Speed(rawValue: 10)

2 Answers

Stone Preston
Stone Preston
42,016 Points

it means that it expected an Int, but got something else.

Speed(rawValue: 10)

is not the correct way to access the raw value of an enumeration member which is why it did not return an Int like the challenge was expecting.

according to the Swift eBook:

Access the raw value of an enumeration member with its rawValue property:

enum Planet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}

let earthsOrder = Planet.Earth.rawValue
// earthsOrder is 3

using the example above, we can access the rawValue of the Slow speed like so:

enum Speed: Int {
    case Slow = 10
    case Medium = 50
    case Fast = 100
}
var turtleSpeed = Speed.Slow.rawValue

I was stuck on the same one and was trying the same answer as OP. The corresponding video is very confusing on this point.

Alamuddin Bakhit
Alamuddin Bakhit
1,355 Points

This was very confusing for me either, I hope to see a change in the video or the test.