Error : Binary operator '==' cannot be applied to operands of type 'UILabel?' and 'String'
import UIKit
class ViewController: UIViewController {
let Soft = 5
let Medium = 8
let Hard = 12
@IBAction func hardnessSelected(_ sender: UIButton) {
let hardness = sender.titleLabel
if hardness == "Soft"{
print(Soft)
}
else if hardness == "Medium"{
print (Medium)
}
else {
print (Hard)
}
}
}
How can i fix this error?
You don't give the line number the error is on, but looking at the text it mentions operation
==so I'm guessing it's one of these:"Soft" and "Medium" are the strings, so hardness must be a
'UILabel?. Those types can't be compared to each other. You must want the text displayed on the button? Looking at the UILabel docs, there is atextproperty so you probably want to change this line to grab the string representing the button's text:Are you using dynamic buttons? It would be less error prone to just compare the sender with the button your are checking for. Comparing hard-coded strings to the text of the button can lead to run-time errors. Maybe you didn't get the case right, misspelled the text, or decided to localize later so the text may be different in a different language. These errors wouldn't be caught at compile-time.