问题标签 [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 回答
1526 浏览

objective-c - 如何在 Objective-C 中随事件发送和接收数据?

我创建了一个程序来通过 NSNotification 发送和接收事件。现在我需要与事件一起发送数据。谁能建议我如何在 Objective-C 编码中做到这一点?

0 投票
2 回答
1048 浏览

objective-c - iPhone Objective-C 放置 NSNotifications

我有一个相当复杂的 iphone 应用程序,它发生了许多异步进程。为了解决这个问题,我大量使用了 NSNotification Center。我的问题是注册通知的“最佳实践”是什么起来。我想在主视图的 viewDidLoad 中有一个“registerNotifications”方法,它显然可以一次性注册所有通知。这听起来合理吗?如果不是,那么处理这个问题的首选方法是什么。提前感谢您的帮助!!

0 投票
1 回答
2222 浏览

iphone - NSNotification 与委托协议?

我有一个 iPhone 应用程序,它基本上是从 API 获取信息(在 XML 中,但最终可能是 JSON)。结果对象通常显示在视图控制器(主要是表格)中。

这是现在的架构。

我有从远程服务器获取不同对象的 NSOperation 类。这些 NSOperation 类中的每一个都将采用一个自定义委托方法,该方法将在解析结果对象时回火,然后在没有更多结果可用时最后一个方法。因此,代表的协议将类似于:

我认为该解决方案效果很好,但我最终得到了一堆委托协议,然后我的视图控制器必须实现所有这些委托方法。我不认为它那么糟糕,但我一直在寻找更好的设计。

所以,我正在考虑使用 NSNotifications 来删除代表的使用。我可以将对象包含在通知的 userInfo 部分中,然后只发布收到的对象,然后在没有更多可用时发布最终事件。然后我可以在每个视图控制器中只使用一种方法来接收所有数据,即使在一个控制器中使用多个对象时也是如此。†</p>

那么,有人可以与我分享每种方法的一些优点/缺点。我是否应该考虑重构我的代码以使用事件而不是委托?在某些情况下,一个比另一个更好吗?在我的场景中,我真的不想在多个地方接收通知,所以也许基于协议的委托是要走的路。

谢谢!

0 投票
2 回答
698 浏览

iphone - NSNotification race condition

Are there any race condition issues when using NSNotifications within a single thread? Here is a sample method:

}

The first two calls after the condition will trigger NSNotifications that will be received by mainPane. Is mainPane guaranteed to receive the playerToggled message after those notifications? I should say that this code seems to work as desired (playerToggled always executes last). But I'm not sure what timing issues there are around notifications and I can't find a specific answer.

0 投票
1 回答
1189 浏览

cocoa - NSNotification 和多线程

我正在尝试NSTaskDidTerminateNotification在我的多线程应用程序中获取通知,但无法正常工作。当我在单线程应用程序上测试它时,它似乎确实有效。在init我有[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(taskDidEnd:) name: NSTaskDidTerminateNotification object: myTask];并且我很确定它被调用是因为其他对象(如 myTask)正在那里启动。该taskDidEnd:方法定义为

在 dealloc 中,观察者被移除。

这一切都发生在一个在单独线程内启动的对象中,我想在同一个对象内接收该通知。

0 投票
2 回答
1791 浏览

cocoa - 多个对象的 NSNotification

在我的 NSApp 委托中,我添加了一个对象的观察者,该对象是一个 NSWindow 子类,它在委托本身中启动,并在单击窗口后发布通知。选择器也在委托中。从同一个委托类中,我启动了另一个对象,该对象在启动时将自身添加为上面相同 NSWindow 子类的另一个窗口的观察者,并且选择器也在这个新启动的类中。两个通知都已发布,但问题是它们在两个班级中都发布了……这正常吗?我希望它只发布一次。

0 投票
3 回答
20016 浏览

iphone - 如何发布和接收 NSNotifications(目标 C)| 通知(在 Swift 中)?

是否有一个易于理解的模式如何发送 NSNotification(目标 C) | 通知(在 Swift 中)以及如何接收通知?代码片段?文档就该主题写了 150 页。想看一个简单的例子。

0 投票
1 回答
796 浏览

objective-c - 常见的 NSNotification 错误?

一个简化...

建筑物有一系列公寓对象。每个公寓都有一个 currentTenant。这些租户属于 Person 类型。请注意,currentTenant 没有对公寓的引用,因此无法将信息发送回链。

当租户遇到管道问题时,他会提出 NSNotification:

每个公寓仅观察其当前租户的通知(这是在公寓建造时设置的,在当前租户之前):

当公寓收到来自它自己的 currentTenant 的通知时,它会发送它自己的通知“PlumberRequired”,以及 NSDictionary 中的公寓编号和 currentTenant。

Apartment 观察这些通知,它将从任何公寓(或其他对象)获取:

这里有什么我可能会从根本上出错的地方吗?正在发生的事情是公寓正在接收来自任何和所有当前租户的通知,而不仅仅是它自己的。

抱歉,实际代码有点太笨拙,无法发布。只是想知道我对观察来自特定发件人的通知的理解是否存在差距?

0 投票
3 回答
12726 浏览

iphone - 从 UIView 更新 UITabBarController 的 badgeValue 的最佳方法

我在 AppDelegate 中设置了一个 tabBarController,并有一些带有导航控制器的 UIViewController。在其中一个 TabBar 项目中,在我推送了几个 UIView 之后,我想更新另一个 TabBar 项目的 badgeValue 项目。

最好的方法是什么?我真正能想到的唯一方法是 NSNotification 和值的单例存储,但对于一些简单的事情似乎需要做很多工作,而且我不知道 NSNotifications。

我对 super.tabBarController.otherView.tabBarItem.badgeValue = @"1" 之类的东西有一个疯狂的猜测(因为我以类似的方式设置了选择哪个选项卡),但我并不惊讶这不起作用。

谢谢

0 投票
2 回答
2941 浏览

objective-c - OSX的网络连接NSNotification?

我只需要在分配有效 IP 地址时发布通知。我曾尝试通过 SCReachability 进行轮询,但这似乎效率低下。

有什么建议么?这似乎应该很简单,但我已经努力了几个小时才能让任何工作正常进行。