アプリ内課金の処理でグルグルを表示させている場合など、エラーのハンドリングが複数箇所になって、グルグルを消すのが漏れたりしそうですが、 RACSubject を作って、 subscribeError:completed: で dismiss させると、 SVProgressHUD を使う箇所もここにまとめられるので便利。
+ (RACSubject *)createProgressHUDSubject
{
[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack];
RACSubject *subject = [RACReplaySubject replaySubjectWithCapacity:1];
[subject subscribeError:^(NSError *error) {
[SVProgressHUD dismiss];
} completed:^{
[SVProgressHUD dismiss];
}];
return subject;
}