Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS Object-Oriented Swift Properties Getter and Setter Methods

setter method doesn't work... Why?

In the course Object-Oriented Swift, in the Properties section, in regards to the getter and setter methods challenge... This doesn't work, why?

 class Temperature {
        var celsius: Float = 0.0
        var fahrenheit: Float {
          get {
            return (celsius * 1.8) + 32.0
          }
          set {
            fahrenheit = newValue
            celsius = (fahrenheit - 32.0) / 1.8
          }
        }    
    }

Checking the work button only gives me the reply, "Bummer! Try again"... Not very helpful

Temperature.swift
class Temperature {
    var celsius: Float = 0.0
    var fahrenheit: Float {
        return (celsius * 1.8) + 32.0
    }    
}

1 Answer

Francisco Navarro
Francisco Navarro
14,185 Points

Hi Misho!

As Amit says during the course, computed properties do not actually store a value, instead and in this case fahrenheit provides a getter and a setter to retrieve other properties values indirectly, so you can't use:

fahrenheit = newValue

Instead, use directly the "newValue" in the formula:

set { celsius = (newValue - 32.0) / 1.8 }

Hope that helps

Thank you very much! That answered my confusion about it perfectly!