我刚开始在我的项目中使用ReactiveCocoa,并提出了这个问题:我尝试使用RACObserve来获取网络可访问性状态更改,以便我可以设置按钮状态。在我的ViewController中,我使用下面的代码:
AppDelegate *AppDele = (AppDelegate *)[UIApplication sharedApplication].delegate;
RACSignal *reachableNetworkSignal = [AppDele.reachableNetworkSignal doNext:^(id x) {
NSLog(@"%@",x);
}];
并在我的AppDelegate中:
- (RACSignal *)reachableNetworkSignal {
return RACObserve([AFNetworkReachabilityManager sharedManager], reachable);
}
我想当网络状态发生变化时,我应该能够看到控制台的变化。然而,当VC被引入时,我只得到过一次。为什么? 谢谢!
答案 0 :(得分:0)
UIButton *aBtn = [[UIButton alloc] init];
aBtn.rac_command = [[RACCommand alloc] initWithEnabled:[self network] signalBlock:^RACSignal *(id input) {
NSLog(@"has network");
return [RACSignal empty];
}];
- (RACSignal *)network {
return RACObserve([AFNetworkReachabilityManager sharedManager], reachable);
}
这适合我。