中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

iOS檢測(cè)是否有網(wǎng)絡(luò)連接

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
如果你的工程里面是用的AFNetworking請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)的話(huà),那么可以直接使用 AFNetworkReachabilityManager.h來(lái)判斷網(wǎng)絡(luò)狀態(tài)!如果是用的ASI的話(huà),里面自帶的有Reachability.m和 Reachability.h這兩個(gè)類(lèi),下面會(huì)分開(kāi)介紹這兩個(gè)的使用方法。

使用AF請(qǐng)求網(wǎng)絡(luò):

在AppDelegate.h里面添加類(lèi)方法:

+ (void)netWorkStatus;//獲取網(wǎng)絡(luò)狀態(tài)

在.m里面

#import "AppDelegate.h"

#import "ViewController.h"

#import "AFNetworkReachabilityManager.h"//af里面監(jiān)聽(tīng)網(wǎng)絡(luò)狀態(tài)的類(lèi)

#import "FileManager.h"//單利模型,用來(lái)記錄當(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,   // 無(wú)連接
     AFNetworkReachabilityStatusReachableViaWWAN = 1,   // 3G 花錢(qián)
     AFNetworkReachabilityStatusReachableViaWiFi = 2,   // WiFi
     */
    
    // 如果要檢測(cè)網(wǎng)絡(luò)狀態(tài)的變化,必須用檢測(cè)管理器的單例的startMonitoring
    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
    
    // 檢測(cè)網(wǎng)絡(luò)連接的單例,網(wǎng)絡(luò)變化時(shí)的回調(diào)方法
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        
        //這是單利+模型,用來(lái)記錄網(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)建一個(gè).h文件命名為Singleton

//
//  Singleton.h
//  SingletonModel
//
//  Created by 琳小兮 on 15/5/21.
//  Copyright (c) 2015年 琳小兮. All rights reserved.
//

//因?yàn)榉椒?nbsp;shared"ClassName"是連在一起的,為了讓宏能夠正確替換掉簽名中的“ClassName”需要在前面加上 ##
//當(dāng)宏的定義超過(guò)一行時(shí),在末尾加上“\”表示下一行也在宏定義范圍內(nèi)。注意最后一行不需要加"\”。

//使用方法:(單利配合模型使用很方便)
//在.h里面(//公開(kāi)的訪(fǎng)問(wèn)單利對(duì)象的方法singleton_interface(MyModel))
//在.m里面(singleton_implementation(MyModel))

#define singleton_Interface(class)  + (class *)share##class;

#define singleton_implemetntion(class)\
static class * instance = nil;\
+ (class *)share##class\
{\
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


如果是用的ASI的話(huà):

在AppDelegate.h里面導(dǎo)入頭文件:

#import "Reachability.h"

添加類(lèi)方法:

+(BOOL) isConnectionAvailable;//判斷是否有網(wǎng)絡(luò)

在.m里面

+(BOOL) isConnectionAvailable{
    
    BOOL isExistenceNetwork = YES;
    
    Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];
    
    NSParameterAssert([reach isKindOfClass:[Reachability class]]);
    
    NetworkStatus stats = [reach currentReachabilityStatus];

    if (stats == NotReachable)
        //沒(méi)有網(wǎng)絡(luò)
        isExistenceNetwork = NO;
    else if (stats == ReachableVia3G)
        isExistenceNetwork = YES;
    else if (stats == ReachableVia2G)
        isExistenceNetwork = YES;
    else if (stats == ReachableViaWiFi)
        isExistenceNetwork = YES;
    
    if (!isExistenceNetwork) {
        
        return NO;
    }
    
    return isExistenceNetwork;
}

也可以用上面那種方式,利用單利+模型,來(lái)記錄當(dāng)前網(wǎng)絡(luò)的具體狀態(tài)!

標(biāo)簽: isp 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀(guān)點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇: Spring使用memcached

下一篇:python通過(guò)pil將圖片轉(zhuǎn)換成黑白效果