2

我需要能够在多个视图中检查互联网连接/可用更新。实现可在众多视图中访问的方法/功能(执行此功能)的最佳方式是什么?

我是否可以拥有一个包含这些方法的单独类,以便在需要时使用?如果这是可能的话。

4

6 回答 6

1

我不知道您在为 Internet 连接做什么,但是如果您使用AFNetworking库之类的东西,那么您可以为端点设置单例并将其用于网络操作。它还包括它自己的可达性功能,您可以使用它来查看网络连接是否可行,以及用于处理连接状态更改的基于块的方法(与检查网络连接是否存在一样重要)

如果您想推出自己的解决方案。看看NPReachability。它是 Apple 的 Reachability 类的扩展,提供 KVO、块和 ARC 支持。

于 2013-06-19T08:33:07.677 回答
1

您将必须下载Reachability.hamd.m文件并将其添加到您的项目中。并使用这一行:

Reachability *reach = [Reachability reachabilityWithHostname:@"google.com"];
 if ([reach isReachable]) {
     //Internet Available...
}
else
{
      //Internet Not Available
}
于 2013-06-09T14:34:05.470 回答
0

Apples Libraries and Frameworks 没有提供可以直接使用的全局方法。

互联网连接检查

检查 Internet 连接,您可以使用来自 Apple 的 Reachability 示例中的Reachability类,如此所述

Reachability *reach = [Reachability reachabilityWithHostname:@"google.com"];
 if ([reach isReachable]) {
     //Internet Available...
}
else
{
      //Internet Not Available
}

或使用其他开源框架之一:

小github搜索:

可用的应用程序更新检查

要检查可用的应用程序更新,您可以使用可用的开源框架之一。喜欢:

于 2013-06-19T09:13:40.533 回答
0

有很多方法可能。如果您的函数需要存储任何数据,单例是个好主意。如果没有,您可以只创建一个只有静态方法(+ 前缀)的类。然后从需要它的任何文件中导入该类。

于 2013-06-09T17:17:39.807 回答
0

这是 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];
于 2013-06-19T08:36:56.373 回答
-1

一种方法是将变量添加到您的应用程序委托。然后,您可以使用以下方式在任何地方访问它:

MyAppDelegate *app = (MyAppDelegate *)[UIApplication shared].delegate;
if (app.myInternetVariable) {
    // etc...
}

另一种方法是使用单例来存储所有应用程序数据。

于 2013-06-09T14:32:08.583 回答