Я создал свой собственный Cocoapod, который в настоящее время запускает функцию updateCounting()
раз в секунду.Моя конечная цель - использовать protocol
, чтобы я мог иметь своего рода метод делегата в моем классе контроллера представления, который срабатывает каждый раз при запуске updateCounting()
.
Мой общедоступный файл Cocoapod в настоящее время выглядит следующим образом:
public class Service: NSObject {
var timer = Timer()
public static let shared = Service()
public func scheduledTimerWithTimeInterval(){
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.updateCounting), userInfo: nil, repeats: true)
}
@objc func updateCounting(){
NSLog("counting..")
}
}
Мой класс VC в настоящее время выглядит следующим образом:
import UIKit
import JacquardToolkit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Service.shared.scheduledTimerWithTimeInterval()
}
}
Моя первоначальная мысль состоит в том, чтобы добавить протокол к моему Service
класс примерно так:
public protocol ServiceDelegate: NSObjectProtocol {
func timerFired()
}
public class Service: NSObject, ServiceDelegate {
var timer = Timer()
public static let shared = Service()
public func scheduledTimerWithTimeInterval(){
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.timerFired), userInfo: nil, repeats: true)
}
@objc public func timerFired() {
NSLog("timerfired")
}
}
Пока я застрял, но я по сути пытаюсь сделать слушателя в своем классе VC, чтобы каждый раз, когда срабатывает timerFired()
или updateCounting()
, я мог обнаружитьчто в моем классе VC и действовать соответственно.Любая помощь приветствуется:)