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 Object-Oriented Swift Properties Getter and Setter Methods

javier graterol
javier graterol
6,056 Points

object-Oriented swift

according to this code, it says that the answer of the code it es not correct. I have tried several ways and i can't find how to solve it.

What am i missing?

Temperature.swift
class Temperature {
    var celsius: Double = 0.0
    var fahrenheit: Double {
        get {
            return (celsius * 1.8) + 32
        }
        set { celsius = (fahrenheit - 32 ) / 1.8
        }
    }
}
Dylan Meade
Dylan Meade
8,619 Points

I think it may be easier for us to help you if you also let us know what the question was asking you to do!

javier graterol
javier graterol
6,056 Points

The task is: We need to add getter and setter methods to the fahrenheit property of the Temperature class. Add a getter method to the access the value of the fahrenheit property. Then add a setter method. When the user assigns a value to the fahrenheit property, the setter method will calculate and assign a value to the celsius property. (Note: Celsius = (Fahrenheit-32)/1.8))

2 Answers

I think you need to use "newValue" instead of fahrenheit.

class Temperature {
    var celsius: Float = 0.0
    var fahrenheit: Float {
        get {
            return (celsius * 1.8) + 32.0
        }
        set {
            celsius = (newValue - 32) / 1.8
        }
    }
}
javier graterol
javier graterol
6,056 Points

Mmmm sorry but that does not seems to be the problem. And you are using float, the problem sets yo up with Double. But still with Floats it does not work.

Any other ideas?

Alvin Azucena
Alvin Azucena
3,373 Points

We need to add getter and setter methods to the fahrenheit property of the Temperature class. Add a getter method to the access the value of the fahrenheit property. Then add a setter method. When the user assigns a value to the fahrenheit property, the setter method will calculate and assign a value to the celsius property. (Note: Celsius = (Fahrenheit-32)/1.8))

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

im having the same problem, been stuck for almost a day now. can anybody help me please. thank you

this is what i did:

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