7.1 代替代理:
rac_signalForSelector:用于替代代理没炒。
[[self rac_signalForSelector:@selector(userDidScroll:toPhotoAtIndex:) fromProtocol:@protocol(FRPFullSizePhotoViewControllerDelegate)] subscribeNext:^(RACTuple *value) {
@strongify(self);
[self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:[value.second integerValue] inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
}];
[[self rac_signalForSelector:@selector(collectionView:didSelectItemAtIndexPath:) fromProtocol:@protocol(UICollectionViewDelegate)] subscribeNext:^(RACTuple *arguments) {
@strongify(self);
NSIndexPath *indexPath = arguments.second;
FRPFullSizePhotoViewModel *viewModel = [[FRPFullSizePhotoViewModel alloc] initWithPhotoArray:self.viewModel.model initialPhotoIndex:indexPath.item];
FRPFullSizePhotoViewController *viewController = [[FRPFullSizePhotoViewController alloc] init];
viewController.viewModel = viewModel;
viewController.delegate = (id<FRPFullSizePhotoViewControllerDelegate>)self;
[self.navigationController pushViewController:viewController animated:YES];
}];
2勋锤、 代替KVO :
rac_valuesAndChangesForKeyPath:用于監(jiān)聽某個對象的屬性改變。
3赏廓、 監(jiān)聽事件:
rac_signalForControlEvents:用于監(jiān)聽某個事件。
4、 代替通知:
rac_addObserverForName:用于監(jiān)聽某個通知贸呢。
5荧恍、 監(jiān)聽文本框文字改變:
rac_textSignal:只要文本框發(fā)出改變就會發(fā)出這個信號瓷叫。
6、 處理當界面有多次請求時送巡,需要都獲取到數(shù)據(jù)時摹菠,才能展示界面
rac_liftSelector:withSignalsFromArray:Signals:當傳入的Signals(信號數(shù)組),每一個signal都至少sendNext過一次骗爆,就會去觸發(fā)第一個selector參數(shù)的方法次氨。
使用注意:幾個信號,參數(shù)一的方法就幾個參數(shù)摘投,每個參數(shù)對應信號發(fā)出的數(shù)據(jù)煮寡。