我需要能够在多个视图中检查互联网连接/可用更新。实现可在多个视图中访问的方法/函数(执行此函数)的最佳方法是什么?
我是否可以拥有一个包含这些方法的单独类,我在需要时使用它?如果可能的话。
答案 0 :(得分:1)
您必须下载Reachability.h
和.m
文件添加将其添加到您的项目中。
并使用这一行:
Reachability *reach = [Reachability reachabilityWithHostname:@"google.com"];
if ([reach isReachable]) {
//Internet Available...
}
else
{
//Internet Not Available
}
答案 1 :(得分:1)
我不知道您为互联网连接做了什么,但如果您使用类似AFNetworking库的内容,那么您可以为端点设置单例,并将其用于网络操作。它还包括它自己的可达性功能,您可以使用它来查看网络连接是否可行,以及基于块的方法来处理连接状态的变化(与检查网络连接是否存在同样重要)
如果你想推出自己的解决方案。看看NPReachability。它是Apple的Reachability类的扩展,提供KVO,块和ARC支持。
答案 2 :(得分:0)
有很多方法可行。如果您的函数需要存储任何数据,那么单例是个好主意。如果没有,您可以创建一个只有静态方法(+前缀)的类。然后从任何需要它的文件中导入该类。
答案 3 :(得分:0)
这是可兼容的ARC兼容版本:https://github.com/tonymillion/Reachability。在每个视图中,您要检查互联网,您可以将其添加到viewDidLoad方法: //分配一个可达性对象
Reachability* reach = [Reachability reachabilityWithHostname:@"http://thewebsiteyouareusing.com"];
// set the blocks
reach.reachableBlock = ^(Reachability*reach)
{
// It works
};
reach.unreachableBlock = ^(Reachability*reach)
{
// Uh oh, it doesn't work
};
[reach startNotifier];
答案 4 :(得分:0)
您可以直接使用苹果库和框架提供的全局方法。
要检查互联网连接,您可以使用Reachability中提到的the Reachability example from Apple课程here
Reachability *reach = [Reachability reachabilityWithHostname:@"google.com"];
if ([reach isReachable]) {
//Internet Available...
}
else
{
//Internet Not Available
}
或者使用其他开源框架之一:
小github搜索:
要检查可用应用更新,您可以使用其中一个可用的开源框架。 像:
答案 5 :(得分:-1)
一种方法是向应用代理添加变量。然后,您可以使用以下方式访问它:
MyAppDelegate *app = (MyAppDelegate *)[UIApplication shared].delegate;
if (app.myInternetVariable) {
// etc...
}
另一种方法是使用单例来存储所有应用程序数据。