1

关于有用的问题Force reload watchOS 2 Complications用户@alexeyvmp在评论CLKComplicationServerActiveComplicationsDidChangeNotification中提到您应该为事件添加观察者。

什么是创建这个观察者的好地方,它会是什么样子?我是从我的 ComplicationDataSource 还是在我的 InterfaceController 中创建它?我如何确保它不会一遍又一遍地重新创建?

我试图阅读如何在其中创建观察者,Swift但我很难弄清楚将它放在哪里。我目前有

let notificationCenter = NSNotificationCenter.defaultCenter()
let mainQueue = NSOperationQueue.mainQueue()

_ = notificationCenter.addObserverForName(CLKComplicationServerActiveComplicationsDidChangeNotification, object: nil, queue: mainQueue) { _ in
    print("active complications changed. refresh!")
}

任何帮助表示赞赏。

4

1 回答 1

1

您应该将观察者放在InterfaceController中:

NotificationCenter.default.addObserver( self,
        selector: #selector(InterfaceController.CLKComplicationServerActiveComplicationsDidChangeNotification(_:)),
        name: NSNotification.Name(rawValue: "CLKComplicationServerActiveComplicationsDidChangeNotification"), object: nil )

所以当并发症发生变化时,你会在InterfaceController中知道。

于 2017-06-27T14:48:07.520 回答