利用單利+模型,來記錄當(dāng)前網(wǎng)絡(luò)的具體狀態(tài).
如果工程里面是用的AFNetworking請求網(wǎng)絡(luò)數(shù)據(jù),可直接使用AFNetworkReachabilityManager.h來判斷網(wǎng)絡(luò)狀態(tài)。
使用AF請求網(wǎng)絡(luò):
在AppDelegate.h里面添加類方法:
+(void)netWorkStatus;//獲取網(wǎng)絡(luò)狀態(tài)
在.m里面
import "AppDelegate.h"
import "ViewController.h"
import "AFNetworkReachabilityManager.h"http://af里面監(jiān)聽網(wǎng)絡(luò)狀態(tài)的類
import "FileManager.h"http://單利模型津函,用來記錄當(dāng)前的網(wǎng)絡(luò)狀態(tài)
@interface AppDelegate ()
@end
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
ViewController *view = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:view];
self.window.rootViewController = nav;
//調(diào)用網(wǎng)絡(luò)狀態(tài)
[AppDelegate netWorkStatus];
return YES;
}
+(void)netWorkStatus
{
/**
AFNetworkReachabilityStatusUnknown = -1, // 未知
AFNetworkReachabilityStatusNotReachable = 0, // 無連接
AFNetworkReachabilityStatusReachableViaWWAN = 1, // 3G 花錢
AFNetworkReachabilityStatusReachableViaWiFi = 2, // WiFi
// 如果要檢測網(wǎng)絡(luò)狀態(tài)的變化,必須用檢測管理器的單例的startMonitoring
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
// 檢測網(wǎng)絡(luò)連接的單例,網(wǎng)絡(luò)變化時的回調(diào)方法
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
//這是單利+模型厦取,用來記錄網(wǎng)絡(luò)狀態(tài)
FileManager *maa = [FileManager shareFileManager];
maa.netState = status;
// NSLog(@"-----網(wǎng)絡(luò)狀態(tài)----%ld---%d", status,maa.netState);
}];
}
創(chuàng)建一個.h文件命名為Singleton
// Singleton.h
// SingletonModel
// Created by 琳小兮 on 15/5/21.
// Copyright (c) 2015年 琳小兮. All rights reserved.
//
//因為方法名 shared"ClassName"是連在一起的桥帆,為了讓宏能夠正確替換掉簽名中的“ClassName”需要在前面加上 ##
//當(dāng)宏的定義超過一行時赖淤,在末尾加上“\”表示下一行也在宏定義范圍內(nèi)。注意最后一行不需要加"\”谅河。
//使用方法:(單利配合模型使用很方便)
//在.h里面(//公開的訪問單利對象的方法singleton_interface(MyModel))
//在.m里面(singleton_implementation(MyModel))
define singleton_Interface(class) (class *)share;
define singleton_implemetntion(class) static class * instance = nil;
+(class *)share
{
if (!instance) {
instance = [[class alloc]init];
}
return instance;
}
+(class *)allocWithZone:(struct _NSZone *)zone
{
static dispatch_once_t onece;
dispatch_once(&onece, ^{
instance = [super allocWithZone:zone];
});
return instance;
}
然后創(chuàng)建模型咱旱,命名為FileManager
在FileManager.h里面
import <Foundation/Foundation.h>
import "Singleton.h"
@interface FileManager :NSObject
singleton_Interface(FileManager)
@property (nonatomic,assign) int netState;
@end
在FileManager.m里面
import "FileManager.h"
@implementation FileManager
singleton_implemetntion(FileManager)
@end