问题标签 [nsnotifications]

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 回答
759 浏览

cocoa - 模式对话框打开时如何接收通知

我需要向 GUI 线程发送消息,下次 GUI 线程空闲时应该处理这些消息。此消息可以来自 GUI 线程或后台线程。

我尝试了 MachPort/Notification 的组合。但是当我做一个

如果有模态对话框,则不会调度此对话框,我必须在处理对话框之前关闭对话框,因此这对我来说不可用。

在菜单选择或实时调整大小期间不处理消息是可以的,但模态对话框有点延迟。

0 投票
1 回答
225 浏览

iphone - 依次播放多媒体内容

嗨,我有一个 NSArray,其中包含许多我喜欢称之为“多媒体动作”的对象,这些对象封装了一些多媒体内容,如电影和照片。我想按顺序“播放”它们,等待每个完成,然后再调用另一个。

在调用下一个操作之前管理每个操作的持续时间的最佳方法是什么?(对于照片想象一个 UIAlertView 在延迟几秒钟后关闭,对于电影想象一个 MPMoviePlayerController 代替)

我已经调用了使用 NSOperation 扫描数组的方法。

重要提示:无论是在 NSOperation 中调用,MPMovieController 似乎都不会播放(界面甚至不会出现)。有没有其他人遇到过这个问题?

更新使用performSelectorOnMainThread:使 MPMoviePlayer 按预期工作

0 投票
2 回答
531 浏览

iphone - 管理 NSNotification 和 UITabBarController 交互

我有 1 个包含 UITabBarController 的主 UIViewController。标签栏控制器有 4 个 UIViewControllers(每个都由 UINavigationControllers 管理)。简而言之,它看起来像这样:

FirstUIViewController 默认加载。

在 SecondUIViewController 中,有一个可以发生的事件。此事件具有与其一起传递的特定数据。当此事件发生时,我希望发生两件事:

1)FourthUIViewController 在标签栏控制器中被选中,以直观地显示已输入的不同标签。

2) FourthUIViewController 中的后续操作,其中选择了特定的 UITableViewCell。选定的单元格由事件中传递的数据确定。

为了做到这一点,我在 MainViewController 中创建了一个 NSNotification 观察者。它监听来自 SecondUIViewController 的事件并通过 userInfo 从中获取数据。

我也知道从 MainViewController 我可以轻松地在 UITabBarController 上设置 selectedIndex 以便显示正确的选项卡。(#1完成)。

然而,完成#2让我感到困惑。我不知道如何(正确地)设置标签栏的 selectedIndex,然后让 FourthUiViewController 作用于选定的单元格。我的假设是在此事件发生之前可能尚未加载 FourthUIViewController,因此我无法设置任何参数或调用任何观察者。

也许更广泛的问题是通过选项卡选择加载 UIViewController 时如何传递数据(与推送非常简单的新 UIViewController 相比)。

TIA。

0 投票
1 回答
51 浏览

objective-c - 我应该测试一个经常同步到服务器的模型类吗?

我该怎么做,因为显然有很多异步方法,而且(据我所知)没有办法在单元测试中检查它们。

例如:

p>

0 投票
1 回答
3612 浏览

iphone - 在应用程序进入前台时刷新视图控制器内容

我有一个带有标签栏的应用程序,其中有几个带有用户生成内容的标签。当每个视图控制器加载时,viewDidLoad 方法向服务器发出 HTTP 请求以获取数据,然后相应地填充其视图。但是,一旦加载了所有数据,视图将保持不变(除非视图控制器被卸载并重新加载)。

许多具有用户生成内容的其他应用程序具有类似的行为,除了如果应用程序进入后台然后再次回到前台,每个视图都会重新加载。也就是说,当用户在应用程序处于活动状态时在各个选项卡之间切换时,内容不会自动刷新。如果用户“退出”应用程序,然后稍后再返回,视图将被重新加载。

是否有设计应用程序以这种方式运行的标准做法?具体来说,我想知道是否有 UIKit 细节可以利用来刷新我对应用程序“重新启动”的看法。

否则,我想一个简单的方法是让每个视图控制器在 viewDidLoad 中注册通知并监听进入前台的应用程序。然后控制器可以通过重新加载其数据来响应每个通知。

0 投票
5 回答
11224 浏览

iphone - NSNotificationCenter 捕获和跟踪所有 NSNotifications

为了更好地理解“幕后”发生的事情,我很乐意对我的应用程序中发生的任何通知进行完整跟踪。

虽然我很天真,但我尝试的第一件事就是这样注册:

在我的应用程序的某个地方:

实际上,我确实以这种方式收到了许多通知。但在某些时候,应用程序确实崩溃了。堆栈跟踪显示它在 implementationClass 中因 EXC_BAD_ACCESS 而崩溃,根据我的经验,这确实表明某些东西在其释放后被调用。然而我的观察对象仍然活着,它的释放器还没有被调用。

接下来我尝试设置一个断点-[NSNotificationCenter postNotification:],然后po {NSNotification *}($ebp+16)在我的断点被捕获时在 gdb-console 中运行。这确实揭示了一些通知,但不是我所期待/希望的全部。例如,我的应用程序确实正确处理了方向更改,但在重新定向设备时(在模拟器中)我没有看到任何通知被捕获。

我错过了什么?是否有可靠地观察 NSNotificationCenter 的方法(例如工具)?

感谢您的任何提示。

0 投票
1 回答
1820 浏览

iphone - Objective C - 如何访问 NSNotification 内部对象?

我想从通知中访问内部对象。我需要获取密钥 AVSystemController_AudioVolumeChangeReasonNotificationParameter。

如果我调用 [sender object] 我会得到这个输出。但如果我打电话

我只收到“发送到实例的无法识别的选择器”。这是为什么?

NSLog(@"%@", [发送者对象]) 输出:

如果无法访问 userInfo,我可以获取 NSLog 的输出来进行字符串搜索吗?

0 投票
1 回答
977 浏览

iphone - 注册 NSNotification 会导致我的应用程序崩溃?

我正在使用MPMovieplayerViewController播放电影,并且我想在电影停止时注册通知...我正在使用以下代码来使用NSNotification但是当电影停止时我的应用程序崩溃了...我以相同的方式使用了NSNotification早些时候它执行得很好..关于我做错了什么有什么想法吗?

在我的 AppDelegate 类中,我已经像这样注册了

}

0 投票
2 回答
369 浏览

iphone - NSNotificationCenter:执行一次操作需要多长时间

我想知道从发布通知到收到通知需要多长时间。

原因是我想了解观察者模式是否适合我。我不希望另一个视图控制器可以在通知发送和处理之前更改值。恐怕另一个进程(线程?)会更快,并且该值会在不应该被覆盖时被覆盖。

0 投票
3 回答
2788 浏览

iphone - iphone - NSNotification 的目的是什么?

  1. 你能解释一下 NSNotification 的目的是什么,我可以在哪些情况下使用它?

  2. 通知是通过传递委托来调用应用程序中的所有类,还是调用特定类?

  3. 是否可以创建 1 个通知,并在多个类上接收它?