J'ai une opération merge
qui dépend du résultat de deux opérations asynchrones. La première est une opération de réseau, la seconde est un succès ou un échec de l'autorisation de localisation. Je me fiche des valeurs de ces opérations, juste que les deux ont terminé.ReactiveCocoa signaux asynchrones conditionnels
Voici ce qu'il ressemble à:
RACSignal *networkCallReturned = [[[NSNotificationCenter defaultCenter] rac_addObserverForName:kNetworkCallReturned object:nil] take:1];
RACSignal *locationPermission = [[[NSNotificationCenter defaultCenter] rac_addObserverForName:kLocationManagerGotLocationPermission object:nil] take:1];
@weakify(self);
[[RACSignal merge:@[ networkCallReturned, locationPermission ]
subscribeCompleted:^{
@strongify(self);
// Do something else here
}];
Le problème que j'ai est que l'appel réseau n'est pas fait quand je n'ai pas joignabilité. Ce n'est pas quelque chose que je peux changer non plus. Comment puis-je déclencher le signal networkCallReturned
de manière conditionnelle si je n'ai pas d'accessibilité? Dois-je configurer un autre signal qui surveille l'accessibilité et prendre la première valeur envoyée par networkCallReturned
ou par le signal d'accessibilité?
OK, c'est logique. Je vais regarder dans d'autres méthodes, merci. – danielbeard