委托方法适用于我的应用程序,如何在我的框架中使其工作?

时间:2017-05-30 18:17:14

标签: ios objective-c frameworks

我通过调用以下方式检测时区变化:

- (void) applicationSignificantTimeChange:(UIApplication *)application

当我将此调用放入我的app委托文件时,它会被成功调用。但是我试图在我正在构建的框架中使用它,并且不确定在哪里放置它或确保它被成功调用。如何在客观的c框架中实现这样的委托方法?

1 个答案:

答案 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)
    }
}