问题标签 [nsnotification]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 键盘出现时“无法识别的选择器发送到实例”
当我在我的应用程序屏幕中单击文本字段并且键盘显示时,xcode 调试器显示此错误:
在 mainViewController 的 viewDidLoad 方法中,我正在调用 registerForKeyboardNotifications 方法,如下所示:
[self registerForKeyboardNotifications];
这是它的实现(在 mainViewController.m 中):
知道有什么问题吗?
objective-c - 如果我想添加类型化的属性,子类化 NSNotification 是正确的路线吗?
我正在尝试子类化NSNotification
.
Apple 的文档NSNotification
声明如下:
NSNotification
是一个没有实例变量的类簇。因此,您必须继承NSNotification
并覆盖原始方法name
、object
和userInfo
。您可以选择任何您喜欢的指定初始化程序,但请确保您的初始化程序不会调用 (via )NSNotification
的实现。不打算直接实例化,并且它的 方法会引发异常。init
[super init]
NSNotification
init
但这对我来说不是很清楚。我应该创建这样的初始化程序吗?
objective-c - NSNotification 的测试类型
我需要检查一个对象是否是 NSNotification。仅仅知道它是否是子类是不够的,因为我想区分它是 NSNotification 还是 NSNotification 的子类。
因此,要详细说明,我需要区分以下内容:
- 一个 NSConcreteNotification
- NSNotification 的子类(但不是 NSConcreteNotification)
问题是 NSNotifications 实际上是 NSConcreteNotifications 而 NSConcreteNotification 是一个私有类,所以我不能用它来测试。
protocols - NSNotification 的强制执行协议
我有一个由三个对象组成的模型,一个基本模型对象、一个特定模型对象(以 generalStatus 为例)和一个 genericXML getter 对象。getter 对象被传递到模型中,因此我可以在没有网络的情况下驱动测试用例。每个模型拉取数据和更新视图都有一个特定的控制器(以 genstatusController 为例)。低级 genericXML getter 使用 ASIHttp 进行网络工作,有运行循环并且活动是异步的。具体模型有一个genericXML getter,它会调用getter 来更新一个XML 文档。有许多上层模型都使用相同的基本模型,然后是一个通用的 XML getter 对象。当 genericXML getter 完成更新 xml 数据的异步请求时,它会将 NSNotification 发布到模型。然后模型将解析 XML 并将 NSNotification 发布到控制器,让它知道数据已更新。我在基础对象和特定模型之间有几个协议。我喜欢这种强制执行级别,有没有办法在对象集之间强制执行 NSNotification?
顺便说一句,控制器调用数据的刷新,但需要等待来自模型的异步事件来告诉它更新已完成,以便它可以更新视图。
objective-c - 使用 NSNotification 中断循环
我有一个包含带循环的方法的类。如果发生某个事件(例如按下按钮),我需要能够打破循环。
当按下按钮时,我正在使用NSNotificationCenter
通知包含循环的类。
但是,如果我在执行循环时按下按钮,则通知会在循环完成后发生,而不是中断循环。
我猜这是因为它在同一个线程中运行。
那么如何NSNotificationCenter
在后台/不同线程中进行操作?这可能吗?或者有更好的方法吗?
iphone - iOS NSNotification - 退出暂停时如何安全忽略
有时,当我正在处理的应用程序退出暂停模式时,我需要确保它不会响应 iOS 在应用程序暂停时为其保存的通知。在哪里可以确定我的响应代码不会运行?
我希望将 removeObserver 放置为 applicationWillEnterForeground 可以解决问题,但我在 NSNotification 文档中找不到任何关于此的内容。
编辑:让我添加场景的详细信息:
我正在开发的应用程序会检查未来 7 天范围内日历事件的更改。它会在两次刷新它的数据(请求 eventStore): 1. 当 NSNotification 来自 iPhone 日历关于更改时。2.应用程序第一次能够在新的一天,因为7天的范围已经改变。
我遇到的设计挑战是两种情况同时为真(应用程序从暂停状态返回,这是新的一天,并且在应用程序暂停时修改了日历事件)。在这种情况下,我只想重新查询一次事件存储。我的想法是,在 applicationWillEnterForeground 中,如果这是当天的第一次发布,请告诉应用程序忽略或删除任何通知。我的印象是,我对 NSNotifications 在这种情况下如何工作的假设可能不正确。任何指导都会很棒!
ios - NSNotification 和被终止的暂停应用
ios如何处理应用程序暂停时决定终止的应用程序通知?我的理解是暂停的应用程序不会收到警告,因此不能删除它的观察者本身。
cocoa - NSNotificationCenter Observer 停止接收事件,当应用程序失去对 Lion 的关注时
我有一个从默认 NSNotificationCenter 订阅特定类型通知的应用程序。
在 OSX Lion 上,它工作正常,除了当应用程序失去焦点(另一个应用程序变为活动状态)时,它会停止接收事件。当应用程序获得焦点时,它会再次开始接收事件。该应用程序在以前的 OSX 版本上没有这种行为,它总是会收到通知,即使它不在焦点上也是如此。
我能做些什么来改变这种行为?
谢谢!弥敦道
objective-c - NSNotification 和 NSThread
我使用 NSThread 在单独的线程上创建一个对象。
该对象等待一个事件。当该事件发生时,会在默认通知中心发布通知。
我的 AppController 观察到该通知并运行一个选择器。
问题:选择器中的方法(myMethod:)是在主线程上运行还是在上面的线程(myThread)上运行?
iphone - nsnotificationcenter 方法多次触发
我有一个视图控制器。里面有一个 nsnotification 观察者。我正在从另一个视图控制器发布通知。但是 nsnotification 观察者选择器会被触发两次或有时三次。我的问题是,当我使用 [view removeFromSuperview]; 要删除此视图控制器视图,通知观察者是否已删除?我在 viewcontroller 类的 dealloc 方法中给出了这个方法