ios - 委托(delegate)方法在我的应用程序中工作,我如何使它在我的框架中工作?

标签 ios objective-c frameworks

我通过调用以下命令检测时区的变化:

- (void) applicationSignificantTimeChange:(UIApplication *)application

当我将此调用放在我的应用程序委托(delegate)文件中时,它会成功调用。但是,我试图在我正在构建的框架中使用它,并且不确定将它放在哪里或确保它被成功调用。您如何在 objective-c 框架中实现诸如此类的委托(delegate)方法?

最佳答案

您的框架可以注册为 .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)
    }
}

关于ios - 委托(delegate)方法在我的应用程序中工作,我如何使它在我的框架中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44269222/

相关文章:

java - 哪个基于 Java 的 MVC 框架与 ASP.NET MVC 最相似?

php - 什么是 PHP 框架,什么是好的框架?

Django vs GAE + Django vs GAE + 其他框架

ios - 我的帐户未启用数字迁移到 Firebase

ios - 打开父应用程序 :reply: error with asynchronous network call in containing app

iphone - NSUserDefault内存管理问题

objective-c - 迭代 NSMutableArray 无法正常工作

iphone - heightForRowAtIndexPath崩溃

ios - UICollectionView 帮助

objective-c - int *p; 和有什么区别?和 ClassA *Obj?