Хобрук: Ваш путь к мастерству в программировании

Значение типа '(UIButton) -> ()' не имеет члена 'setTitle' в tableView

Я создавал игру/приложение для бездействия. Вы можете приобрести обновления, нажав кнопку в ячейке таблицы. Чего я не могу понять, так это того, как установить заголовок для кнопки (я хочу, чтобы цена была указана на каждой кнопке). Когда я пытаюсь, я получаю сообщение об ошибке "Значение типа "(UIButton) -> ()" не имеет члена "setTitle"". Я использую Xcode 8.2 и Swift 3.

Пользовательский контроллер ячейки:

@IBAction func upgradePurchase(_ sender: UIButton) {
    if GlobalVariables.sharedManager.balance >= GlobalVariables.sharedManager.UpgradesPrice[GlobalVariables.sharedManager.UpgradesCurrent] {

    }
}

Контроллер табличного представления:

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomTableViewCell

    let row = indexPath.row

    let showPrice = "Buy: $\(GlobalVariables.sharedManager.UpgradesPrice[row])"

    cell.upgradeIdentifier.text = GlobalVariables.sharedManager.UpgradesName[row]

    cell.upgradeDescription.text = GlobalVariables.sharedManager.UpgradesDesc[row]

    cell.upgradePurchase.setTitle("\(showPrice)", for: .Normal)

    GlobalVariables.sharedManager.UpgradesCurrent = GlobalVariables.sharedManager.UpgradesPrice[row]

    return cell
}
17.12.2016

  • Какая строка выдает эту ошибку? И опубликуйте объявление вашего класса CustomTableViewCell (в частности, торговых точек) 17.12.2016

Ответы:


1

По ошибке или случайно Вы пытаетесь установить заголовок для кнопки Действие не в экземпляре UIButton. Здесь upgradePurchase это IBAction, а не IBOutlet.

Вам нужно установить заголовок на свой IBOutlet, поэтому сделайте его, если это не так, затем установите заголовок.

cell.btnupgradePurchase.setTitle("\(showPrice)", for: .normal)

Примечание. В Swift 3 это .normal, а не .Normal.

17.12.2016
  • @ЭйденР. Добро пожаловать дружище :) 17.12.2016
  • @DownVoter Пожалуйста, хотя бы не забудьте добавить причину отрицательного голосования за ответ. 22.06.2018
  • Новые материалы

    Введение в контекст React
    В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

    Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
    Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

    Это оно
    Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

    7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
    Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

    Базовое руководство по переносу концепций обучения в глубокое обучение
    Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

    C в C.R.U.D с использованием React-Redux
    Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

    5 обязательных элементов современного инструмента конвейера данных
    В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..