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