我通过调用以下方式检测时区变化:
- (void) applicationSignificantTimeChange:(UIApplication *)application
当我将此调用放入我的app委托文件时,它会被成功调用。但是我试图在我正在构建的框架中使用它,并且不确定在哪里放置它或确保它被成功调用。如何在客观的c框架中实现这样的委托方法?
答案 0 :(得分:2)
您的框架可以注册为.UIApplicationSignificantTimeChange
的观察者,而不是依赖UIApplicationDelegate
方法:
class MyClass {
var observer: NSObjectProtocol!
init() {
observer = NotificationCenter.default.addObserver(forName: .UIApplicationSignificantTimeChange, object: nil, queue: .main) { [weak self] notification in
self?.handleNotification(notification)
}
}
private func handleNotification(_ notification: Notification) {
// do something
}
deinit {
NotificationCenter.default.removeObserver(observer)
}
}