iOSアプリでネットワーク通信時等にステータスバーに表示する, NetworkActivityIndicatorを管理する, YMNetworkActivityManagerを公開しました.
通常, インジケーターの表示/非表示は以下のように行います.
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
しかし, この方法では複数の通信処理を同時に行う場合に, 表示/非表示の状態管理が面倒になります.
YMNetworkActivityManagerを利用し, 処理開始時にincrement, 処理終了時にdecrementを呼ぶことによって, 内部で実行中の通信処理の数を記憶され, すべての通信処理が終了した時点で自動的にインジケーターを非表示になります.
[[YMNetworkActivityManager sharedManager] increment]; [[YMNetworkActivityManager sharedManager] decrement];
また, 必要に応じてカウンタをリセットして, インジケーターを非表示にすることも出来ます.
[[YMNetworkActivityManager sharedManager] reset];
YMNetworkActivityManagerはiOS 5以降でARCを有効にしている環境下で利用できます.