[ios]从框架或自定义静态库向目标应用程序添加观察者

[ios]add observer to Target Application from the Framework or custom static library

我开发了一个 ios lib/framework 记录用户登录和连接到服务器并从服务器实时获取数据的地方。 同样 library/framework 我想向我的应用程序添加观察者,以便我知道应用程序何时进入后台或再次激活。

类似于我们通常在应用程序代码中所做的事情....(下面是我的测试应用程序代码。我想移动到通用的观察者功能lib/framework

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MyAppWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil];

但即使我已将方法定义为

void MyAppWillResignActive(id self, SEL _cmd, id application) {
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

注意要在选择器中调用的方法的签名 MyAppWillResignActive

编辑:按照 iosDeveloper09 评论中的建议将注册移至库初始化。


Class级

  • initialize

    期间注册
    + (void)initialize {
        [[NSNotificationCenter defaultCenter]
         addObserver:self
         selector:@selector(applicationWillResignActive:)
         name:UIApplicationWillResignActiveNotification
         object:nil];
    }
    
  • Class 处理程序 +

    + (void)applicationWillResignActive:(NSNotification *)notification
    

实例级别

  • init

    期间注册
    - (instancetype)init
    {
        self = [super init];
        if (self) {
            [[NSNotificationCenter defaultCenter]
             addObserver:self
             selector:@selector(applicationWillResignActive:)
             name:UIApplicationWillResignActiveNotification
             object:nil];
        }
        return self;
    }
    
  • 实例处理程序-

    - (void)applicationWillResignActive:(NSNotification *)notification
    

主持人

@property (nonatomic, retain) SO_41526719Library * lib;

// Keep an instance around
self.lib = [[SO_41526719Library alloc] init];

运行时

applicationWillResignActive NSConcreteNotification 0x6000000545e0 {name = UIApplicationWillResignActiveNotification; object = }