Я хочу вызвать функцию 50 раз каждые 0,5 секунды с помощью NSTimer, но моими опциями являются таймер, выполняемый неограниченное время или создание таймеров, которые не повторяются. Могу ли я уйти с использованием таймеров, чтобы делать то, что я хочу, или попробовать попробовать что-то еще?Как я могу сделать NSTimer, который повторяется определенное количество раз?
ответ
Вам просто нужно отслеживать количество вызовов функций с помощью переменной класса.
После выполнения максимального количества вызовов функции вы останавливаете установку следующего таймера.
Использование класса IOS UIViewController в качестве примера:
class ViewController: UIViewController {
var timer:NSTimer? = nil;
var times:Int = 0;
override func viewDidLoad() {
super.viewDidLoad()
startTimer()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func startTimer() {
timer = NSTimer.scheduledTimerWithTimeInterval(0.5,
target: self,
selector: "onTick:",
userInfo: nil,
repeats: false)
}
func onTick(timer:NSTimer){
println("Fired \(self.times)")
times += 1
// call your function
if times < 50 { // set the next timer
self.startTimer()
}
}
Не должно быть 'timer = NSTimer.scheduledTimerWithTimeInterval (0.5, target: self, selector:" onTick: ", userInfo: nil, repeat: false)' –
Я выбрал значение 2.0 для быстрого тестирования. Обновит ответ –
Спасибо, что помогает! Что означает «+ =»? –
Вы можете сделать таймер в функции с рекурсивным селектором и условием (timeoutCounter < 50):
class ViewController: UIViewController {
var timoutCounter:Int = 0
let kTimeoutWaitingTime = 50
override func viewDidLoad() {
super.viewDidLoad()
timeout()
}
func timeout() {
if timoutCounter < kTimeoutWaitingTime {
timoutCounter += 1
NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: #selector(ViewController.timeout), userInfo: nil, repeats: false)
}
}
}
- 1. Сделать прокрутку текста определенное количество раз
- 2. Как я могу вызвать nextTuple() определенное количество раз в секунду?
- 3. Как я могу зациклировать эту функцию на определенное количество раз?
- 4. Как создать цикл на C++, который циклически повторяется определенное количество раз?
- 5. Как визуализировать определенное количество раз?
- 6. NSTimer не повторяется
- 7. Как я могу сделать метод, возвращающий цвет, который повторяется больше раз?
- 8. Как создать NSTimer, который повторяется дважды, а затем останавливается
- 9. Python: Threading определенное количество раз
- 10. Как сделать grails while loop определенное количество раз
- 11. Добавить Xml определенное количество раз
- 12. Повторите действие определенное количество раз
- 13. Как закодировать аудио определенное количество раз?
- 14. Печать элементов в списке, который происходит определенное количество раз?
- 15. NSTimer не повторяется (разработка iOS)
- 16. Как напечатать символ определенное количество раз?
- 17. Riot.js Как повторять тег определенное количество раз?
- 18. Как написать переменную определенное количество раз?
- 19. Twig - Как зацикливать определенное количество раз
- 20. Зацикливание кода определенное количество раз
- 21. Как я могу узнать, сколько раз повторяется слово?
- 22. Приращение значения определенное количество раз
- 23. Flexslider: Как закодировать определенное количество раз?
- 24. NSTimer не повторяется из AppDelegate
- 25. Можете ли вы сделать код запуска определенное количество раз?
- 26. Как я могу подсчитать количество раз, когда появляется имя?
- 27. Как я могу повторить определенное количество значков с помощью Polymer?
- 28. Чтение данных из STDIN определенное количество раз
- 29. Вызов формы FormDialog определенное количество раз
- 30. Скопируйте и вставьте определенное количество раз
Добавить счетчик, аннулировать таймер после 50 звонков ...? –
Нет третьего шага! ;) – rickster