почему я должен использовать print ((отправитель как AnyObject) .currentTitle !!) для печати заголовка, а print (sender.currentTitle) не работает? - PullRequest
0 голосов
/ 06 января 2020

Почему, когда я пытаюсь напечатать название кнопки, я использовал print(sender.currentTitel) и не работает.

И это ниже, это работа:

print((sender as AnyObject).currentTitle!!)

1 Ответ

1 голос
/ 06 января 2020

Я предполагаю, что вы находитесь в функции IBAction, подобной этой:

    @IBAction func buttonTapped(_ sender: Any) {
        // print here
    } 

Это связано с ссылкой Any, которую вы объявляете при создании IBAction. Два решения.

Вы можете изменить свой IBAction следующим образом:

    @IBAction func buttonTapped(_ sender: UIButton) {
        // print(sender.titleLabel?.text)
    } 

или проверить соответствие отправителя:

    @IBAction func buttonTapped(_ sender: Any) {
        if let button = sender as? UIButton {
            // print(button.titleLabel?.text)
        }
    } 
  • Решение 1 лучше, если ваш IBAction запускается только с помощью кнопки (ей)
  • Решение 2 может быть подходом, если ваша IBAction используется несколькими отправителями

Приветствия

...