- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我知道未收到通知的标准原因:
我可以很高兴地说,我非常确定这些都没有发生。我想最有可能的是该对象在某个时候被取消并重新创建,但它在初始化时注册了通知。
这是我注册的地方:
/**
* initialises an object with a unique file url
*
* @param url the url to set as the file url
*/
- (id)initWithFileURL:(NSURL *)url
{
if (self = [super initWithFileURL:url])
{
self.entries = [[NSMutableArray alloc] init];
// we want to be notified when a note has changed
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(noteChanged)
name:@"com.andbeyond.jamesvalaitis.notesChanged"
object:self];
NSLog(@"Just registered for 'com.andbeyond.jamesvalaitis.notesChanged'");
}
return self;
}
这里是我发布通知的地方:
/**
* save the note content
*/
- (void)saveNote
{
if (_isChanged)
{
// save to the text view to the note's contents
self.note.noteContent = self.noteView.text;
// post a notification that we changed the notes
[[NSNotificationCenter defaultCenter] postNotificationName:@"com.andbeyond.jamesvalaitis.notesChanged" object:nil];
NSLog(@"Just posted 'com.andbeyond.jamesvalaitis.notesChanged'");
// make sure we know it's already saved
_isChanged = NO;
}
}
这是未被调用的方法:
/**
* called when a note has changed
*/
- (void)noteChanged:(NSNotification *)notification
{
NSLog(@"Just received for 'com.andbeyond.jamesvalaitis.notesChanged'");
// save the notes
[self saveToURL:self.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success)
{
if (success)
NSLog(@"Note updated.");
}];
}
这是澄清我注册并发布通知的控制台:
2012-11-15 13:27:50.958 iCloud Custom[11269:907] Just registered for 'com.andbeyond.jamesvalaitis.notesChanged'
2012-11-15 13:28:24.184 iCloud Custom[11269:907] Just posted 'com.andbeyond.jamesvalaitis.notesChanged'
最佳答案
我想我已经找到答案了。您在名为 NotesDocument.m
的 UIDocument
文件中创建通知。所以当你创建一个观察者时,你将对象设置为self
。这意味着 NotesDocument 对象。但是当您发布通知
时,您发送的对象是nil
。所以 它不会根据文档观察到通知
。 解决此问题的简单方法是在创建通知时将对象设置为 nil
。否则,您需要传递一个 NotesDocument 对象
。
查看下图和参数详细信息,了解 addObserver 通知方法。
检查notificationSender
参数。观察者想要接收其通知的对象;也就是说,只有此发送者发送的通知才会传递给观察者。
关于ios - NSNotificationCenter 观察者未收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13398633/
现在我正在尝试编写一个函数来在屏幕上出现键盘时向上移动框架。我开始使用 NSNNotificationCenter。我的代码正在运行但不正确。当键盘出现时,我的 formView 向上移动,但是当我开
我想知道是否有可能在应用程序处于暂停状态时从 NSNotificationCenter 运行观察者,如果选择器需要播放音乐。基本上,它在歌曲结束时运行以重置队列。是否可以激活选择器,即使应用程序处于后
应用程序可以在内部使用 NSNotificationCenter让不同的部分相互通信,但是这可以扩展到不同的应用程序可以使用它进行通信吗? 编辑 :很抱歉关于 iOS 与 OSX 的混淆。我只添加了
我正在创建一个必须在 OS X 上作为特权帮助工具运行的服务器。在其中,我尝试使用 NSSocketPort , NSFileHandle ,和NSNotificationCenter在监听套接字上执
我需要在两个不同的控制台应用程序(观察者和客户端)之间进行通信。 在观察者应用程序中,我添加了以下代码: [[NSNotificationCenter defaultCenter] postNotif
我正在使用 NSNotificationCenter 在基于文档的应用程序中发送自定义通知。 基于文档的应用程序可以有许多打开的文档。理想情况下,我希望文档及其子文档仅接收在文档或其子文档中创建的通知
NSNotificationCenter 真的很酷,我们可以用它构建非常可扩展的应用程序。我的问题是:我们是否可以在应用程序中滥用 NSNotificationCenter,即密集使用它,还是它不是一
我一直在研究 NSNotificationCenter,我一直想知道您什么时候会使用自己的自定义通知中心而不是 defaultCenter?这样做的好处是什么? 请原谅我的无知,但似乎仅使用 defa
是平衡“addObserver”的标准: [[NSNotificationCenter defaultCenter] removeObserver:self] 在 viewWillDisappear
我使用以下行添加一个观察者: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFini
当我使用一个时,内存/处理的用途是什么: [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(dismis
我从调用多个NSNotifications的所有观察器选择器到没有一个起作用。是否存在我可能已禁用的XCode / Application设置,可能会导致此行为? 这个问题几乎影响到我已经注册为观察员
基本上,我正在尝试创建一个允许用户通过 Google 或 Facebook 登录的应用程序。我已经成功创建了整个登录过程,但是在显示 Facebook 个人资料图像时遇到了一个小问题。因此,当用户选择
我的应用程序中有一个 UITableview Controller ,一个 View Controller ,我正在尝试使用 NSNotificationCenter 将 NSDictionary 从
我是 iOS 开发的新手。我正在自己学习这个。我现在对什么是通知中心有点困惑。我通过网络搜索并研究了 nsnotification 中心。 我发布这个问题只是为了澄清我对 nsnotification
在我的一个类(class)中,我发布了一条通知: [[NSNotificationCenter defaultCenter] postNotificationName:@"ALERTNOTI" obj
我有一个读取条形码的类,当我读取条形码时,我会向 NSNotificationCenter 发送通知,如下所示。 -(void)barcodeData:(NSString *)barcode type
我使用 NSNotificationcenter 来实现连接变化的事件监听器。当用户连接或断开 WiFi 网络时。当应用程序处于暂停模式时,是否可以将此通知发送到应用程序? 必须可以做到这一点,以 S
我正在使用 NSNotificationCenter,监听器使用以下代码订阅: [[NSNotificationCenter defaultCenter] addObserver:self
在我的应用程序中,我需要检测 ImagePicker 是否准备好拍照。我在这里找到了解决方案:How to know if iPhone camera is ready to take picture
我是一名优秀的程序员,十分优秀!