2017-08-03 11 views
1

シングルトンの共有インスタンス上で変数が変更されたときに、通知を受け取るように正しく設定するにはどうすればよいですか?現在、ブロックは決して発射されません。NSKeyValueObservationが機能しない、Swift 4

class MyViewController: UIViewController { 
    private var observer: NSKeyValueObservation? 

    func configureKVO() { 
     observer = MySingleton.shared.observe(\.shouldFetchDataFromServer) { (manager, change) in 
      print("Changed: \(manager.shouldFetchDataFromServer)") 
     } 
     MySingleton.shared.shouldFetchDataFromServer = false 
     MySingleton.shared.shouldFetchDataFromServer = true 
    } 
} 

class MySingleton: NSObject { 
    static let shared = MySingleton() 
    @objc var shouldFetchDataFromServer: Bool = false 
} 

答えて

4

shouldFetchDataFromServerの宣言に 'dynamic'キーワードを追加すると、正常に動作するはずです。

関連する問題