我需要能够在多个视图中检查互联网连接/可用更新。实现可在众多视图中访问的方法/功能(执行此功能)的最佳方式是什么?
我是否可以拥有一个包含这些方法的单独类,以便在需要时使用?如果这是可能的话。
我需要能够在多个视图中检查互联网连接/可用更新。实现可在众多视图中访问的方法/功能(执行此功能)的最佳方式是什么?
我是否可以拥有一个包含这些方法的单独类,以便在需要时使用?如果这是可能的话。
我不知道您在为 Internet 连接做什么,但是如果您使用AFNetworking库之类的东西,那么您可以为端点设置单例并将其用于网络操作。它还包括它自己的可达性功能,您可以使用它来查看网络连接是否可行,以及用于处理连接状态更改的基于块的方法(与检查网络连接是否存在一样重要)
如果您想推出自己的解决方案。看看NPReachability。它是 Apple 的 Reachability 类的扩展,提供 KVO、块和 ARC 支持。
您将必须下载Reachability.h
amd.m
文件并将其添加到您的项目中。并使用这一行:
Reachability *reach = [Reachability reachabilityWithHostname:@"google.com"];
if ([reach isReachable]) {
//Internet Available...
}
else
{
//Internet Not Available
}
Apples Libraries and Frameworks 没有提供可以直接使用的全局方法。
要检查 Internet 连接,您可以使用来自 Apple 的 Reachability 示例中的Reachability类,如此处所述
Reachability *reach = [Reachability reachabilityWithHostname:@"google.com"];
if ([reach isReachable]) {
//Internet Available...
}
else
{
//Internet Not Available
}
或使用其他开源框架之一:
小github搜索:
要检查可用的应用程序更新,您可以使用可用的开源框架之一。喜欢:
有很多方法可能。如果您的函数需要存储任何数据,单例是个好主意。如果没有,您可以只创建一个只有静态方法(+ 前缀)的类。然后从需要它的任何文件中导入该类。
这是 Reachability 的 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];
一种方法是将变量添加到您的应用程序委托。然后,您可以使用以下方式在任何地方访问它:
MyAppDelegate *app = (MyAppDelegate *)[UIApplication shared].delegate;
if (app.myInternetVariable) {
// etc...
}
另一种方法是使用单例来存储所有应用程序数据。