Ios 如何使网络可达性状态成为我的应用程序的首要优先级?

Ios 如何使网络可达性状态成为我的应用程序的首要优先级?,ios,objective-c,afnetworking,Ios,Objective C,Afnetworking,我做了一个函数,名为initnetwork,在其中我尝试查看网络是否可以访问,我在viewDidLoad中调用这个函数,这是我做的第一件事 -(void)initNetwork { mainManager = [AFHTTPRequestOperationManager manager]; mainManager.requestSerializer.timeoutInterval = 30; backgroundTaskManager = [AFHTTPRequestOp

我做了一个函数,名为initnetwork,在其中我尝试查看网络是否可以访问,我在viewDidLoad中调用这个函数,这是我做的第一件事

-(void)initNetwork {
    mainManager = [AFHTTPRequestOperationManager manager];
    mainManager.requestSerializer.timeoutInterval = 30;
    backgroundTaskManager = [AFHTTPRequestOperationManager manager];
    mainImgManager = [AFHTTPRequestOperationManager manager];
    backgroundImgManager = [AFHTTPRequestOperationManager manager];
    [MainView addSubview:labelForRefresh];
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        [defaults setInteger:status forKey:@"networkStatus"];
        if ([[AFNetworkReachabilityManager sharedManager] isReachable]) {
            [defaults setBool:true forKey:@"reachability"];
            labelForRefresh.hidden = true;
        }
        else {
            [defaults setBool:false forKey:@"reachability"];
            [self indicatorStop];
            labelForRefresh.hidden = NO;
            [self hide_button];
            [self hidden_button];
        }
        [self getNetworkAction];
    }];
}
问题是,它不是在等待setReachabilityStatusChangeBlock的返回,而是继续检查我的viewDidLoad,初始化许多我不想做的事情

我试着放一些 dispatch_async(dispatch_get_global_queue(dispatch_queue_PRIORITY_DEFAULT,0))^{}

在附近,但似乎不起作用。
有人给我解释或提示吗?

把你的代码放在
setReachabilityStatusChangeBlock:
中,这取决于块的完成情况:

[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        [defaults setInteger:status forKey:@"networkStatus"];
        if ([[AFNetworkReachabilityManager sharedManager] isReachable]) {
           // put your  viewdidload code here (that depends on block completion)
        }
        else {
            // code
        }
        [self getNetworkAction];
    }];