问题标签 [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.

0 投票
1 回答
2610 浏览

iphone - 键盘出现时“无法识别的选择器发送到实例”

当我在我的应用程序屏幕中单击文本字段并且键盘显示时,xcode 调试器显示此错误:

在 mainViewController 的 viewDidLoad 方法中,我正在调用 registerForKeyboardNotifications 方法,如下所示:

[self registerForKeyboardNotifications];

这是它的实现(在 mainViewController.m 中):

知道有什么问题吗?

0 投票
4 回答
1916 浏览

objective-c - 如果我想添加类型化的属性,子类化 NSNotification 是正确的路线吗?

我正在尝试子类化NSNotification.

Apple 的文档NSNotification声明如下:

NSNotification是一个没有实例变量的类簇。因此,您必须继承NSNotification并覆盖原始方法 nameobjectuserInfo。您可以选择任何您喜欢的指定初始化程序,但请确保您的初始化程序不会调用 (via ) NSNotification的实现。不打算直接实例化,并且它的 方法会引发异常。init[super init]NSNotificationinit

但这对我来说不是很清楚。我应该创建这样的初始化程序吗?

0 投票
4 回答
1349 浏览

objective-c - NSNotification 的测试类型

我需要检查一个对象是否是 NSNotification。仅仅知道它是否是子类是不够的,因为我想区分它是 NSNotification 还是 NSNotification 的子类。

因此,要详细说明,我需要区分以下内容:

  1. 一个 NSConcreteNotification
  2. NSNotification 的子类(但不是 NSConcreteNotification)

问题是 NSNotifications 实际上是 NSConcreteNotifications 而 NSConcreteNotification 是一个私有类,所以我不能用它来测试。

0 投票
0 回答
41 浏览

protocols - NSNotification 的强制执行协议

我有一个由三个对象组成的模型,一个基本模型对象、一个特定模型对象(以 generalStatus 为例)和一个 genericXML getter 对象。getter 对象被传递到模型中,因此我可以在没有网络的情况下驱动测试用例。每个模型拉取数据和更新视图都有一个特定的控制器(以 genstatusController 为例)。低级 genericXML getter 使用 ASIHttp 进行网络工作,有运行循环并且活动是异步的。具体模型有一个genericXML getter,它会调用getter 来更新一个XML 文档。有许多上层模型都使用相同的基本模型,然后是一个通用的 XML getter 对象。当 genericXML getter 完成更新 xml 数据的异步请求时,它会将 NSNotification 发布到模型。然后模型将解析 XML 并将 NSNotification 发布到控制器,让它知道数据已更新。我在基础对象和特定模型之间有几个协议。我喜欢这种强制执行级别,有没有办法在对象集之间强制执行 NSNotification?

顺便说一句,控制器调用数据的刷新,但需要等待来自模型的异步事件来告诉它更新已完成,以便它可以更新视图。

0 投票
4 回答
1208 浏览

objective-c - 使用 NSNotification 中断循环

我有一个包含带循环的方法的类。如果发生某个事件(例如按下按钮),我需要能够打破循环。

当按下按钮时,我正在使用NSNotificationCenter通知包含循环的类。

但是,如果我在执行循环时按下按钮,则通知会在循环完成后发生,而不是中断循环。

我猜这是因为它在同一个线程中运行。

那么如何NSNotificationCenter在后台/不同线程中进行操作?这可能吗?或者有更好的方法吗?

0 投票
2 回答
522 浏览

iphone - iOS NSNotification - 退出暂停时如何安全忽略

有时,当我正在处理的应用程序退出暂停模式时,我需要确保它不会响应 iOS 在应用程序暂停时为其保存的通知。在哪里可以确定我的响应代码不会运行?

我希望将 removeObserver 放置为 applicationWillEnterForeground 可以解决问题,但我在 NSNotification 文档中找不到任何关于此的内容。

编辑:让我添加场景的详细信息:

我正在开发的应用程序会检查未来 7 天范围内日历事件的更改。它会在两次刷新它的数据(请求 eventStore): 1. 当 NSNotification 来自 iPhone 日历关于更改时。2.应用程序第一次能够在新的一天,因为7天的范围已经改变。

我遇到的设计挑战是两种情况同时为真(应用程序从暂停状态返回,这是新的一天,并且在应用程序暂停时修改了日历事件)。在这种情况下,我只想重新查询一次事件存储。我的想法是,在 applicationWillEnterForeground 中,如果这是当天的第一次发布,请告诉应用程序忽略或删除任何通知。我的印象是,我对 NSNotifications 在这种情况下如何工作的假设可能不正确。任何指导都会很棒!

0 投票
2 回答
334 浏览

ios - NSNotification 和被终止的暂停应用

ios如何处理应用程序暂停时决定终止的应用程序通知?我的理解是暂停的应用程序不会收到警告,因此不能删除它的观察者本身。

0 投票
3 回答
1159 浏览

cocoa - NSNotificationCenter Observer 停止接收事件,当应用程序失去对 Lion 的关注时

我有一个从默认 NSNotificationCenter 订阅特定类型通知的应用程序。

在 OSX Lion 上,它工作正常,除了当应用程序失去焦点(另一个应用程序变为活动状态)时,它会停止接收事件。当应用程序获得焦点时,它会再次开始接收事件。该应用程序在以前的 OSX 版本上没有这种行为,它总是会收到通知,即使它不在焦点上也是如此。

我能做些什么来改变这种行为?

谢谢!弥敦道

0 投票
1 回答
833 浏览

objective-c - NSNotification 和 NSThread

我使用 NSThread 在单独的线程上创建一个对象。

该对象等待一个事件。当该事件发生时,会在默认通知中心发布通知。

我的 AppController 观察到该通知并运行一个选择器。

问题:选择器中的方法(myMethod:)是在主线程上运行还是在上面的线程(myThread)上运行?

0 投票
2 回答
828 浏览

iphone - nsnotificationcenter 方法多次触发

我有一个视图控制器。里面有一个 nsnotification 观察者。我正在从另一个视图控制器发布通知。但是 nsnotification 观察者选择器会被触发两次或有时三次。我的问题是,当我使用 [view removeFromSuperview]; 要删除此视图控制器视图,通知观察者是否已删除?我在 viewcontroller 类的 dealloc 方法中给出了这个方法