为什么我不能使用addObserverForName观察NSApplicationXYZNotification?

问题描述 投票:-1回答:1

我正在尝试使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 docNSHipster guide,但是我似乎无法弄清我的误解,尽管我认为这是NSNotificationCenter的基本知识,以及如何有效。

objective-c macos nsnotificationcenter
1个回答
0
投票

愚蠢的解决方案,尽管在@Willeke的评论的帮助下,他们没有看到相同代码段的错误-该库需要Cocoa.h来代替iOS导入。

© www.soinside.com 2019 - 2024. All rights reserved.