У вас есть несколько проблем здесь:
Что вызывает сбой, так это то, что MarketButton
требует, чтобы вы передавали UIButton в качестве параметров, которые таймер не выполняет при запуске.Вы можете сделать это, передав кнопку через параметр userInfo scheduledTimer
.Вот пост переполнения стека о том, как , что .
Однако, даже после того, как вы это сделаете, все равно не будет работать.Вам нужно создать метод для обработки, когда таймер завершит работу.
Что-то вроде:
func enableButton() {
yourButton.isEnabled = true
}
И затем поместите его в качестве селектора вместо метода MarketButton
.
примерно так:
let timer = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(enableButton), userInfo: nil, repeats: false)
Помещая MarketButton в качестве селектора таймера, вы создаете бесконечный цикл.Когда таймер завершает работу, он вызывает метод, который затем запускает другой таймер и т. Д.
Другая проблема связана с этими двумя строками кода:
let timer = Timer.scheduledTimer(timeInterval: 10, target: self, selector: #selector(MarketViewController.MarketButton), userInfo: nil, repeats: false)
sender.isEnabled = !(timer.isValid )
В этом случае таймер будет почти всегдабыть действительным, потому что вы просто установите его.Так что !(timer.isValid)
будет в основном всегда возвращать false.Однако, если вы последуете моему совету и вызовете другой метод вместо MarketButton
, тогда это не будет проблемой.
Также примечание: при именовании функций не следует использовать их заглавные буквы, поэтому MarketButton
должно бытьmarketButton
.
Я предлагаю попытаться найти решение с информацией, которую я вам дал.Если у вас есть какие-либо вопросы, дайте мне знать и добро пожаловать в переполнение стека!