Ответ 1
Если вы уверены, что titleLabel
не nil
:
println(TheButton.titleLabel!.text)
else
if let text = TheButton.titleLabel?.text {
println(text)
}
Я новичок в Swift
, и я делаю простой калькулятор, где я не обнаружил кнопку, которая была нажата, а мой код ниже.
@IBAction func ButtonTapped(TheButton : UIButton){
println(TheButton.titleLabel.text)
}
Но он показывает мне ошибку, как "UILabel? Does not have a member a named text"
и мне нужно изменить код, подобный этому
println(TheButton.titleLabel?.text)
Эта печать Optional("1")
(1 - имя моей кнопки)
Итак, кто-нибудь может мне помочь, почему это случилось со мной и как я могу напечатать имя своей кнопки без опции?
Если вы уверены, что titleLabel
не nil
:
println(TheButton.titleLabel!.text)
else
if let text = TheButton.titleLabel?.text {
println(text)
}
Проще говоря, вы могли бы просто сделать:
let titleValueString = TheButton.currentTitle!
Если заголовок кнопки не равен нулю, восклицательный знак (!
) будет неявно разворачивать необязательный (currentTitle без восклицательного знака), и у вас будет строковое значение для названия кнопки в вашей константе, titleValueString
Верхний ответ больше не работает. Вот скорректированная версия для Swift 2.2:
Если вы уверены, что titleLabel не ноль:
print(TheButton.titleLabel!.text!)
Если вы не:
if let text = TheButton.titleLabel?.text {
print(text)
}