Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SettingsBundleHelper: NSObject {
- ...
- fileprivate struct Keys {
- ...
- static let ToggleAnalytics = "TOGGLE_ANALYTICS"
- ...
- }
- weak var analyticsDelegate: AnalyticToggleDelegate?
- public init(enableSwitching: Bool) {
- self.enableSwitching = enableSwitching
- super.init()
- setupKVO()
- }
- fileprivate func setupKVO() {
- UserDefaults.standard.addObserver(
- self,
- forKeyPath: Keys.ToggleAnalytics,
- options: NSKeyValueObservingOptions.new,
- context: nil
- )
- }
- public var analyticsEnabled: Bool {
- return UserDefaults.standard.bool(forKey: Keys.ToggleAnalytics)
- }
- override public func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey: Any]?, context: UnsafeMutableRawPointer?) {
- if analyticsEnabled {
- analyticsDelegate?.addAnalyticProviders()
- } else {
- analyticsDelegate?.removeAnalyticProviders()
- }
- }
- deinit {
- UserDefaults.standard.removeObserver(self, forKeyPath: Keys.ToggleAnalytics)
- }
- ...
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement