Вызовите метод класса с аргументом из другого метода класса
В моем кодовом файлеMyItemVC.swift Я определил следующий класс и метод:
class MyItemVC: UIViewController, UITextViewDelegate {
var timer = NSTimer()
func cycleTimer(toggleOn: Bool) {
if toggleOn == true {
// Timer calls the replaceItem method every 3 seconds
timer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: Selector("replaceItem"), userInfo: nil, repeats: true)
} else {
timer.invalidate() // stop the timer
}
}
}
В других местах этого класса я вызываю cycleTimer (true), чтобы запустить таймер, и cycleTimer (false), чтобы остановить его.
Теперь я также хочу использовать обычные методы в моемAppDelegate.swift Файл кода для запуска и остановки таймера, когда приложение переходит из активного в неактивное состояние. Но у меня возникают проблемы с вызовом метода cycleTimer из этого класса.
Я нашел ответ о переполнении стека, который предложил мне назвать это так:
func applicationWillResignActive(application: UIApplication) {
MyItemVC.cycleTimer()
}
Но мне также нужно передать аргумент. Поэтому я попытался назвать это так:
func applicationWillResignActive(application: UIApplication) {
MyItemVC.cycleTimer(true)
}
Но я получил эту ошибку:
Невозможно вызвать 'cycleTimer' со списком аргументов типа '(Bool)'
Как я могу вызвать этот метод из методов AppDelegate при передаче аргумента?
Спасибо за помощь. Я понимаю, что это, должно быть, очень простой вопрос, но я новичок в программировании и пытаюсь научиться использовать Swift. Ответ с использованием Swift, а не Obj-C был бы очень признателен.