iOS应用程序中的全局功能

时间:2013-06-09 14:26:35

标签: iphone ios objective-c

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

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

6 个答案:

答案 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...
}

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