- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个SDK,并寻找通过NSNotification
发送对象的最佳实践。
Apple和包括this在内的一些线程指示object
中的postNotificationNamer
参数应该是通知的发送方,在大多数情况下为self
。并且您的自定义对象应通过userInfo NSDictionary
传递。从苹果文档:
创建具有给定名称,发送者和信息的通知,并将其发布到接收者。
例如,不适当的做法是:
[[NSNotificationCenter defaultCenter] postNotificationName:@"myNotification"
object:myObject];
NSDictionary* userInfo = @{@"myMessage": myObject};
[[NSNotificationCenter defaultCenter] postNotificationName:@"myNotification"
object:self
userInfo:userInfo];
NSDicionary
)。
最佳答案
使用对象参数并不危险,但是记住NSNotificationCenter在内部使用该参数来决定某些事情。因此,如果您的代码取决于以特定顺序或特定队列运行的事物,则可能会使表现出意外。
这是NSNotificationCenter Class Reference的相关报价:
要将其通知添加到操作队列的对象。
如果您输入nil,则通知中心不会使用通知的发件人来决定是否将屏蔽添加到操作队列中。
我会建议您将userInfo用作预期的,但这并不危险。
关于ios - 通过[[NSNotificationCenter defaultCenter] postNotificationName]方法直接传递对象是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33635445/
我试图使用 NSNotificationCenter 从 AppDelegate 调用 uiview 中的方法,但无济于事。 AppDelegate.m [[NSNotificationCen
如果我愿意 [[NSNotificationCenter defaultCenter] postNotificationName:@"N" object:self]; NSLog(@"here");
我有一个 View Controller ,当它完成时,我会发布一个通知,并在另一个 View Controller 中包含的 subview 中添加作为观察。但是,当它尝试执行通知后方法时,发生了
文档 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotifi
在 Appdelegate.m 中添加了 postNotification 方法 - (void)application:(UIApplication *)application didRece
我正在尝试通过 addObserver 和 postNotificationName 获得一个使用 NSNotificationCenter 的实例,但我无法弄清楚为什么它不会'不工作。 我有 2 行
我正在尝试使用 NSNotificationCenter 将 NSDictionary 从 UIView 传递到 UIViewController。字典在发布通知时工作正常,但在接收方法中我无法访问字
我正在编写一个SDK,并寻找通过NSNotification发送对象的最佳实践。 Apple和包括this在内的一些线程指示object中的postNotificationNamer参数应该是通知的发
- (void)postNotificationName:(NSString *)notificationName object:(id)notificat
有什么方法可以知道 Xcode 4.6 中的崩溃原因吗? The crash stack is : Exception Type: SIGSEGV Exception Codes: SEGV_ACC
我有用于测试 MyApp 的 UI 测试目标。要测试特定的 MyApp 条件,我需要将通知从 UI 测试目标发布到 MyApp 目标。要从 UI 测试目标函数发布通知,我正在使用它: NSNotifi
我正在 swift 中使用 NSNotificationCenter。这是我在 main.swift 中的代码 导入基金会 class T: NSObject { func someActio
这里我设置了URL方案的代码: func application(application: UIApplication, openURL url: NSURL, sourceApplication:
我正在使用如下代码订阅我自己的通知: NSNotificationCenter.DefaultCenter.AddObserver("BL_UIIdleTimerFired", delegate {
我正在使用如下代码订阅我自己的通知: NSNotificationCenter.DefaultCenter.AddObserver("BL_UIIdleTimerFired", delegate {
我可以为 -[NSNotificationCenter postNotificationName:object:] 的对象参数传递 nil 因为观察者不关心发件人是谁,还是传递 self 更好 对象参
我使用带有 object-c 的 c 库,并快速调用 object-c。这是代码: 1. 在 HomeViewController.swift 中 override func viewWillAppe
我无法在 NSNotificationCenter 中执行选择器方法 receiveChatText,我想知道问题是否是因为 NSNotification postNotificationName 位
我是一名优秀的程序员,十分优秀!