- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当我的应用程序启动时,我会检查可访问性,因为我需要即时的互联网连接。不过,我的问题是似乎没有立即确认 NetworkStatus
,这意味着在设置可达性之后,我立即检查是否有连接,但它返回没有连接,无论如何我实际上是在使用 WiFi/3G,还是已关闭 radio 。
我可以确认我确实获得了 Internet 连接,因为在 applicationDidFinishLaunching 之后立即有一个通知,然后记录“ReachableViaWiFi”..
我做错了什么?为什么不立即确认有效的互联网连接?
- (void)applicationDidFinishLaunching:(UIApplication *)application {
NetworkStatus netStatus = [hostReach currentReachabilityStatus];
if (netStatus == NotReachable) {
ErrorViewController *errorViewController = [[ErrorViewController alloc] initWithNibName:@"ErrorView" bundle:[NSBundle mainBundle]];
[tabBarController.view removeFromSuperview];
[window addSubview:[errorViewController view]];
return;
}
}
-(void)setupReachability {
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name:kReachabilityChangedNotification object: nil];
hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[hostReach startNotifier];
}
-(void)reachabilityChanged:(NSNotification *)notification {
Reachability* curReach = [notification object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
NetworkStatus netStatus = [curReach currentReachabilityStatus];
BOOL connectionRequired = [curReach connectionRequired];
switch (netStatus)
{
case NotReachable:
{
[[NSUserDefaults standardUserDefaults] setInteger:kNOTREACHABLE forKey:kREACHABILITYSTATUS];
NSLog(@"NotReachable");
connectionRequired = NO;
break;
}
case ReachableViaWWAN:
{
[[NSUserDefaults standardUserDefaults] setInteger:kREACHABLEVIAWWAN forKey:kREACHABILITYSTATUS];
NSLog(@"ReachableViaWWAN");
break;
}
case ReachableViaWiFi:
{
[[NSUserDefaults standardUserDefaults] setInteger:kNOTREACHABLE forKey:kREACHABILITYSTATUS];
NSLog(@"ReachableViaWiFi");
break;
}
}
}
最佳答案
好的,所以在我自己尝试了一些事情之后,我实际上通过添加一行额外的代码让它工作:
-(void)setupReachability {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotificationV2 object:nil];
hostReach = [[ReachabilityV2 reachabilityWithHostName:@"www.google.com"] retain];
[hostReach connectionRequired]; // this line was added, and apparently forces a connection requirement..
[hostReach startNotifier];
}
关于iphone - 在 Reachability (2.0.3ddg) 方面需要一些帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156375/
我在开发 iPhone 应用程序时遇到了一次非常奇怪的崩溃。似乎每次我向 friend 展示我的应用程序时它都会崩溃,但否则它永远不会崩溃。在对墨菲定律感到困惑之后,我确定了事故的模式——纽约地铁。使
我正在创建一个 iPhone 应用程序,我正在使用 RestKit api 连接到服务器。每当我将 Reachability.m 和 Reachability.h 添加到项目的第二个 UIViewCo
我使用了Andrew's修改后的Reachability类。 -(void)viewDidLoad [[NSNotificationCenter defaultCenter] postNotifica
我正在使用更新的 Reachability库来测试互联网连接是否可达。我尝试记录一条消息以防无法访问互联网,但日志不调试: //Test the internet connection Reachab
我使用 Reachability 检查我的应用程序的网络状态,除了在 iOS 9.0.1 或更高版本中 reachableBlock 和 unreachableBlock 被调用两次外,一切正常,这给
我需要在我的 iPhone 项目中测试网络可达性。使用哪个项目更好? Reachability与 UIDevice-Reachability 最佳答案 可达性(如果您唯一的问题是测试网络可达性)。这是
我看到论坛上有很多关于Apple的Reachability Class的条目,但我还没有看到这个的解决方案。 我正在开发一个 VoIP 应用程序,需要在后台模式下实时检测连接变化。 SCNetwork
使用 Reachability Class(来自 Apple)来检查远程主机的可用性是否明智?例如,www.google.com 或者我应该使用 NSString *connectedString =
我试图将使用 rebar 构建的 REST API 示例转换为 rebar3 版本( http://jordenlowe.com/title/Explain_like_I_am_5_-_Erlang_
我正在尝试将 Reachability.swift 更新到 swift 3.0,但在将 Reachability 实例传递给回调函数时遇到问题。 这是我的片段:* 请注意 self = 可达性等级 v
我在代码中使用了 Apple 的可达性类。下面是appdelegate的代码 NSNotificationCenter.defaultCenter().addObserver(self
有时我必须检查互联网连接并为此使用“可达性”。 最好使用“可达性”手动检查互联网连接,例如: BOOL status = ([[Reachability reachabilityForInternet
我在这个应用程序的几个 View 中使用了 AFNetworking Reachability。一种观点认为,存在奇怪的问题。在每个 View 中,我都在 loadView 中开始监控:[[AFNet
在 CI 系统中,我使用 valgrind 运行一堆测试,如果 valgrind 没有发现错误,我期望返回值 0,否则返回 1。测试本身成功运行并返回 0。 这就是 error-exitcode 的用
我想在我的应用程序中使用 ReachabilitySwift 类。我在我的 podFile 中添加了依赖项,我从 github 获取了代码. 我遇到了这个错误: 不能在这一行调用不带参数的 'Reac
我正在尝试在我的应用中实现可达性。我在 applicationDidFinishLaunching 中有它。如果我的连接真的很糟糕并且我启动了应用程序,Reachability 会一直持续并且经常使应
我正在使用 Apple 提供的可达性示例代码来检查网络连接并获得更改通知 (Reachability Sample code)。 我查看了我的应用程序的一些崩溃锁。似乎有些崩溃是由于 Reachabi
Apple 名为 Reachability 的示例应用展示了如何检测连接。如果您只有 wifi 而没有互联网,该应用会在下面的第二行停顿一分钟以上: SCNetworkReachabilityFlag
我目前正在使用此检查 viewDidLoad 上的网络连接: -(BOOL)reachable { ReachabilityDRC *r = [ReachabilityDRC reachabi
使用 Reachability 比下面的代码有什么优势?我觉得 Reachability 的代码量很大,但如果它在任何方面都更好,那么我会改用它。 NSString *connectionString
我是一名优秀的程序员,十分优秀!