AFNetworkReachabilityManager仅发出一次RACSignal

时间:2014-11-18 01:49:39

标签: ios objective-c afnetworking reactive-cocoa

我刚开始在我的项目中使用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被引入时,我只得到过一次。为什么? 谢谢!

1 个答案:

答案 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);
}

这适合我。