iOS:可达性 – 返回应用后startNotifier失败

iOS:可达性 – 返回应用后startNotifier失败,第1张

概述我的可达性完全按照 thread中的建议工作. 我使用的是open source Reachability.但是我没有使用块而是通知,因此该过程非常类似于Apple的Reachability代码. 我第一次启动应用程序,运行它,它运行良好. Reachability *reachability = [reach hostReachability];[reachability startNotif 我的可达性完全按照 thread中的建议工作.

我使用的是open source Reachability.但是我没有使用块而是通知,因此该过程非常类似于Apple的Reachability代码.

我第一次启动应用程序,运行它,它运行良好.

Reachability *reachability = [reach hostReachability];[reachability startNotifIEr];

reachabilityChanged:事件正在触发:

[[NSNotificationCenter defaultCenter] addobserver:self selector:@selector(reachability_Changed:) name:kReachabilityChangednotification object:nil];

但是,一旦我按下主页按钮并返回应用程序,startNotifIEr会在内部返回NO而不是YES.

// Set it as our reachability queue,which will retain the queue    if(!SCNetworkReachabilitySetdispatchQueue(self.reachabilityRef,self.reachabilitySerialQueue))    {#ifdef DEBUG        NSLog(@"SCNetworkReachabilitySetdispatchQueue() Failed: %s",SCErrorString(SCError()));#endif      ...      return NO;

因此上面的事件再也不会被解雇了.

除非我错误地使用了这个并且startNotifIEr应该只在init中调用一次,当实例化可达性时再也不会?

self.hostReachability = [Reachability reachabilityWithHostname:_HOST];
解决方法 你应该只需要在init / load上调用[self.hostReachability startNotifIEr]一次.以下是基本需求的概述,使用通知而不是链接线程上的块方法:

>将tonymillion/Reachability库添加到项目中.
>为您的Reachability对象创建属性以确保它被保留,例如.

@interface VIEwController () {  Nsstring *_HOST;}@property Reachability *hostReachability;@end

>注册更改通知,并启动通知程序,例如.

- (voID)vIEwDIDLoad{  [super vIEwDIDLoad];  [[NSNotificationCenter defaultCenter] addobserver:self                                           selector:@selector(reachabilityChanged:)                                               name:kReachabilityChangednotification                                             object:nil];  _HOST = @"www.Google.com";  self.hostReachability = [Reachability reachabilityWithHostname:_HOST];  [self.hostReachability startNotifIEr];}- (voID)vIEwDIDUnload{  [super vIEwDIDUnload];  [[NSNotificationCenter defaultCenter] removeObserver:self];}

>最后,创建一个reachabilityChanged:方法来处理您对Reachability更改的响应,例如.

- (voID)reachabilityChanged:(NSNotification*)notification{  Reachability *notifIEr = [notification object];  NSLog(@"%@",[notifIEr currentReachabilityString]);}

注意:如果您按“主页”按钮并卸载应用程序,则“可达性”中的更改应在返回应用程序后立即触发通知.

总结

以上是内存溢出为你收集整理的iOS:可达性 – 返回应用后startNotifier失败全部内容,希望文章能够帮你解决iOS:可达性 – 返回应用后startNotifier失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1040123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存