我正在尝试使Objective-C iOS库适用于macOS应用程序。删除基于UIKit的通知是这里唯一的实际任务。当尝试用UIApplicationDidEnterBackgroundNotification
替换NSApplicationDidResignActiveNotification
时,遇到了后一个变量被称为未声明标识符的奇数错误。
[self.observers addObject: [[NSNotificationCenter defaultCenter] addObserverForName:NSApplicationDidResignActiveNotification object:nil queue:nil usingBlock:^(NSNotification* note) {
// stop operations
}]];
当我使用替代方法时,不会出现相同的错误:
[[NSNotificationCenter defaultCenter] addObserver:[???] selector:[some selector] name:NSApplicationDidResignActiveNotification object:nil];
但是,此方法的问题在于,我必须事先拥有一个观察者,例如self
,而不是接收可以添加到self.observers
数组的观察者。
我已经阅读了一些文档,问题和指南,包括NSApplication doc和NSHipster guide,但是我似乎无法弄清我的误解,尽管我认为这是NSNotificationCenter的基本知识,以及如何有效。
愚蠢的解决方案,尽管在@Willeke的评论的帮助下,他们没有看到相同代码段的错误-该库需要Cocoa.h来代替iOS导入。