首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用于reachabilityChanged的NotificationCenter addObserver不工作

问题描述:用于reachabilityChanged的NotificationCenter addObserver不工作。

解决方案:

  1. 首先,确保你已经正确导入了Reachability框架,并且在代码中引入了相关的头文件。
  2. 确保你已经正确设置了网络权限,以便应用程序可以访问网络状态。
  3. 确保你在正确的位置添加了观察者。通常,这应该在应用程序启动时进行,例如在AppDelegate的application(_:didFinishLaunchingWithOptions:)方法中。
  4. 确保你正确设置了观察者的selector方法。这个方法应该接收一个NSNotification对象作为参数,并且没有返回值。例如,你可以使用以下代码设置观察者:
代码语言:txt
复制
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(_:)), name: .reachabilityChanged, object: nil)
  1. 确保你的观察者方法被正确实现。在这个方法中,你可以处理网络状态的变化。例如,你可以使用以下代码实现观察者方法:
代码语言:txt
复制
@objc func reachabilityChanged(_ notification: Notification) {
    if let reachability = notification.object as? Reachability {
        if reachability.connection != .unavailable {
            // 网络可用
        } else {
            // 网络不可用
        }
    }
}
  1. 如果以上步骤都正确无误,但观察者仍然不起作用,那么可能是因为NotificationCenter的default实例被其他代码修改或替换了。你可以尝试使用自定义的NotificationCenter实例来添加观察者。例如,你可以使用以下代码创建一个新的NotificationCenter实例,并添加观察者:
代码语言:txt
复制
let customNotificationCenter = NotificationCenter()
customNotificationCenter.addObserver(self, selector: #selector(reachabilityChanged(_:)), name: .reachabilityChanged, object: nil)

这样,你就可以使用自定义的NotificationCenter实例来确保观察者正常工作。

希望以上解决方案对你有帮助!如果你需要更多关于云计算、IT互联网领域的问题解答,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 您的凭据不工作 之前用于连接到******的凭据无法工作。请输入新凭据。

    https://blog.csdn.net/huyuyang6688/article/details/49077665   在公司局域网远程自己计算机的时候,突然无法远程了,提示“您的凭据不工作...之前用于连接到**的凭据无法工作。...之前自己的计算机是可以远程的,但是今天远程的时候突然就给了我这样的惊喜。   从网上查到两种解决方法,小编用下面第一种方法搞定了,如果您用第一种方法搞不定,那请您尝试第二种方法。...第一种方法——编辑组策略 ----   如下图,打开本地组策略编辑器(运行gpedit.msc),计算机配置→管理模板→系统→凭据分配→允许分配保存的凭据用于仅NTLM服务器身份验证: ?   ...win7、win8、win10等版本) 【 转载请注明出处——胡玉洋《您的凭据不工作 之前用于连接到**的凭据无法工作。

    57.3K40

    RDP你的凭据不工作RDP密码不刷新

    你是否有过这样的经历?...新电脑使用Microsoft账号登录后,RDP提示“你的凭据不工作” 在修改Microsoft账户密码后,RDP的密码一直不更新 在Microsoft账户开启无密码后,RDP无法使用 如果你不属于上述的情况...check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer 解决方案 思路/过程 因此问题,我曾经多次在微软官方的社区已经微软官方的英文学习网站中的...我意识到,是因为没更新,本地和远程的数据不一样,这个数据可能也不仅限于RDP的密码 至此,我试着研究是否存在主动更新密码的方法,于是我发现是StackExchange的问题 我尝试了将账户类型转换为本地账户...RDP端口没有放行,检查后果真如此 于是就出现了首次登录时依然无法使用的问题 然后恰巧我又注意到了最近的新版本不能用Microsoft密码登录windows了(在一次争论中) 当我想要证明的时候突然发现最近好像早已没有使用密码登录的选项了

    12.7K30

    iOS 开发之路(登陆页键盘遮挡输入框问题)一

    在学习开发登陆页的时候,遇到的问题分享如下:     首先是swift 3.0 中,NotificationCenter 设置 selector 如下: @IBOutlet weak var...//注意这里要在storyboard对最底部的控件设置约束,然后连线到.swift文件进行绑定   override func viewDidLoad() { super.viewDidLoad...() NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillChange(notification...顺便吐槽一下,从安卓转过来,发现好多问题给出的解决方案都是 Object-C ,而且 Swift 版本更迭,变化很大,网上很多的解决方案经常需要自己微小调动才能正常使用。...给我这样的新手带来好多麻烦。     注:开发环境是Xcode 8.1 测试平台是 iOS 10.0

    85230

    设计模式 - 命令模式&中介者模式&组合模式~AppDelegate 解耦

    self.listeners = listeners super.init() subscribe() } deinit { NotificationCenter.default.removeObserver...(self) } /// 订阅生命周期事件 private func subscribe() { NotificationCenter.default.addObserver...onAppWillEnterForeground), name: UIApplication.willEnterForegroundNotification, object: nil) NotificationCenter.default.addObserver...(onAppDidEnterBackground), name: UIApplication.didEnterBackgroundNotification, object: nil) NotificationCenter.default.addObserver...对于AppDelegate而言,其内部不会再有任何业务上的逻辑,并且因为协议的默认实现,已经将任务默认分发到各个Leaf中,其剩余的任务仅仅就是提供Leaf列表,并且考虑到在组件化环境中的使用,不直接引用各

    62120

    webpack的watch选项不工作原因分析

    今天尝试将以前创建的一个前端项目改为webpack编译,该项目使用了VueJS v2.0,原来是编写gulp脚本完成构建的。很自然就直接用vue-cli来搞定这个事了。...使用vue-cli创建项目 因为以前用过webpack,而vue-cli创建的项目底层其实还是使用webpack构建的,所以使用起来还是很简单的。...而vue-cli的广大使用者并没有报告存在该问题。 个人感觉不应该是webpack的这个功能有问题,还是应该是环境问题。...而我现在的开发操作系统是Windows,那么就只剩下2个可能原因了。 windows路径问题 IDE的safe write特性干扰 试了一下终于发现是IDE的safe write特性这个问题造成的。...IDE的这个特性是为了安全地写文件,它会先将文件写到一个临时文件里,然后最后一个原子move操作将文件move到目标位置。但这样webpack检测文件变动的原来逻辑就不工作了。

    4.1K60

    用于高端实时媒体工作流的RIST

    本文来自RIST Forum at IBC2019的一篇演讲。演讲的主题是用于高端实时媒体工作流的RIST以及它如何在高端工作流中发挥作用。...演讲者首先对比了高端媒体和低端媒体的工作流,当我们查看不同媒体的工作流时,本质上是内容值的联系,比如想要的质量,生产预算和基础设施预算。...对于高端的工作流,内容很有价值,有很高的质量要求,因此有很高的生产预算和高的基础设施预算,可以负担对基础设施的要求。 最终的目标是在任何类型的基础设施上提供无损的传输。...可以有一个普通的延迟和更高的带宽或者基础带宽和更低的延时。 演讲者给出了用于高端工作流的RIST应用。对于最后一公里扩展的情况,不要使用较差的质量连接。...互联网传输的价值正在上升,并可用于主要应用;随着云产品成为现实,Main profile对于支持高端工作流程非常重要;RIST Main Profile适用于各种使用案例,包括服务捆绑轻量级压缩和4K

    86410

    iOS 面试策略之系统框架-设计模式

    装饰模式(Decorator):它可以在不修改原代码的机场上进行拓展。注意它与继承最大的区别是:继承时,子类可以修改父类的行为,而装饰模式不希望如此。...在 iOS 中的典型实现是 NotificationCenter 和 KVO。 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。...通知(Notifications) [image] 1) 观察者 Observer,通过 NotificationCenter 的 addObserver:selector:name:object 接口来注册对某一类型通知感兴趣...在注册时候一定要注意,NotificationCenter 不会对观察者进行引用计数 +1 的操作。 2) 通知中心 NotificationCenter,通知的枢纽。...其最经典的使用方法就是用 UserDefaults 来读写,同时配合栈可以存储一系列状态。它经常用于初始化、重启、App 前后台状态改变等地方。

    1.6K20

    远程桌面失败:你的凭据不工作

    然后按照以下操作,将默认设置“仅来宾—本地用户以来宾身份验证”,更改为“经典:本地用户以自己的身份验证”。 ? ? 方法二: 更改远程桌面服务端的一个远程服务设置就可以了。...方法三: Win+R,输入gpedit.msc,打开本地组策略编辑器,点击“计算机配置”——“管理模板”——“系统”——“凭据分配”,双击右边窗口的“允许分配保存的凭据用于仅 NTLM 服务器身份验证”...第二步:在弹出的窗口中选中“已启用”,再单击“显示”,在弹出的窗口中,输入“TERMSRV/*”。...(确保 TERMSRV 为大写)   注:“显示内容”对话框中的服务器名称格式为:TERMSRV/computername,computername变量可以是一台特定远程计算机的名称(例如,TERMSRV.../myremotepc),或者您可以使用星号(*)包含一组计算机(例如,TERMSRV/* 或 TERMSRV/*.corp.com),其中包含的计算机名称应该与“远程桌面连接”对话框中“计算机”框中输入的名称完全一致

    9.7K10
    领券