例如,我想让我的视图显示toast,我现在的做法是:
在视图:RACObserve(self.viewModel, showToast) subscribeNext:^(NSNumber *isShow) {
if (isShow.boolValue) {
self showToast];
}
}
showToast
是我的ViewModel的属性,我不认为这种方式是非常描述性的,是否有更多的标准,更优雅的方式来实现这一点?
要提供一些更具描述性的内容,您可以创建一个RACSubject来使用[self.toastsSubject sendNext:@"Toast info string of some kind"]
手动发送通知。
@weakify(self)
[self.viewModel.toastsSubject subscribeNext:^(id _) {
@strongify(self)
[self showToast];
}
更好的是,您可以让showToast接受单个参数(例如toast的内容),然后您不需要使用@weakify
和@strongify
,而是可以直接使用rac_liftSelector
来提升信号。
[self rac_liftSelector:@selector(showToast:)
withSignals:self.viewModel.toastsSubject, nil];