Ответ 1
-[NSNotificationCenter rac_addObserverForName:object:]
возвращает бесконечный сигнал. Вы можете подписаться на него следующим образом
Objective-c
[[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIApplicationDidEnterBackgroundNotification object:nil]
takeUntil:[self rac_willDeallocSignal]]
subscribeNext:^(id x) {
NSLog(@"Notification received");
}];
Swift
NSNotificationCenter.defaultCenter()
.rac_addObserverForName(UIKeyboardWillShowNotification, object: nil)
.takeUntil(self.rac_willDeallocSignal())
.subscribeNext { (_) in
print("Notification received")
}
Этот сигнал как указано бесконечно. Если вам нужен этот сигнал/подписка для привязки к времени жизни self
, вы можете добавить takeUntil:
с помощью rac_willDeallocSignal
следующим образом:
Objective-c
[[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIApplicationDidEnterBackgroundNotification object:nil]
takeUntil:[self rac_willDeallocSignal]]
subscribeNext:^(id x) {
NSLog(@"Notification received");
}];
Swift
NSNotificationCenter.defaultCenter()
.rac_addObserverForName(UIKeyboardWillShowNotification, object: nil)
.takeUntil(self.rac_willDeallocSignal())
.subscribeNext { (_) in
print("Notification received")
}