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

I dont understand what I am doing wrong in with the getter and setter methods in Swift for iOS

The setter method for fahrenheit did not assign the right value to the celsius property. (Note: Celsius = (Fahrenheit-32)/1.8)

is my error, but in the set value I have that calculation set. I don't understand what is wrong here.

If anyone could provide a detailed explanation of why my code is wrong, and how to fix it, that would be great.

Thanks in advance.

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

        set {
        return celsius = fahrenheit - 32 / 1.8
        }

   }   
}

I figured out how to solve the problem, by changing fahrenheit to (nevValue)

but, I still dont understand why my last bit of code was invalid. Why was the challenge unable to understand taking farienheit and doing the calculations?

1 Answer

Stephen Hanson
Stephen Hanson
2,030 Points

I believe the reason you got an error, as you later discovered is that the setter method needs a newValue to work. In other words you are trying to set fahrenheit to a newValue when you call it. So by there not being a newValue in set, it did not know what set was trying to accomplish. Like if someone said to you "Paint these walls" and never provided you with a new color.