Reachabilityを使って制御する。
あくまでもダウンロードキューに対しての停止であるため、ダウンロード実行中のタスクを確実に止められる保証はないので、リトライ処理も別途考慮すべき。
ちなみに、initialize
メソッドは、クラス初期化時に自動的に実行されるメソッドです。
@implementation APIManager
/*!
@note ネットワーク状況によって、画像ダウンロード処理の停止・再開を行う
*/
+ (void)initialize {
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN:
case AFNetworkReachabilityStatusReachableViaWiFi:
{
[[SDWebImageDownloader sharedDownloader] setSuspended:NO];
break;
}
case AFNetworkReachabilityStatusUnknown:
case AFNetworkReachabilityStatusNotReachable:
default:
{
[[SDWebImageDownloader sharedDownloader] setSuspended:YES];
break;
}
}
}];
}
@end