gpt4 book ai didi

objective-c - 收到 NSConcreteNotification,但未定义?

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:52 25 4
gpt4 key购买 nike

我正在为我的应用程序编写首选项,该应用程序将其注册为在登录时启动(使用 LSSharedItemList API)。一切顺利,我的应用程序根据复选框状态切换其在用户登录项中的存在。现在,当用户实际从 Accounts.prefPane 的“登录项”中删除应用程序时,我想解决另一个问题。

使用 Notification Watcher 我看到分布式通知中心发送 com.apple.loginItemsListDidChnage(注意打字错误)通知,因此我使用相同的选择器(即 IBAction) 处理首选项窗口中的复选框(实际上,[un] 从/向登录项注册应用程序)。

当我尝试比较将我的应用程序切换为登录项的操作的发送者类时,问题出现了。使用 [sender description][sender class] 我看到了 NSConcreteNotification 类,但是当我尝试对其进行比较时 - 代码中断说没有定义这样的类:

if ([[sender class] isEqualTo:[NSConcreteNotification class]]) {
...
}

如果我尝试将 sender 与 NSNotification 进行比较 - 那么流程不会落入该分支。

也许我缺少一些关于 Mac OS X 分布式通知的基本知识?

运行 Mac OS X 10.6.2

最佳答案

NSConcreteNotification 是抽象类 NSNotification 的私有(private)子类。您不应该使用 NSConcreteNotification 类。如果你想检查一个类是否是一个 NSNotification,使用 -isKindOfClass::

if ([sender isKindOfClass:[NSNotification class]]) {
...
}

关于objective-c - 收到 NSConcreteNotification,但未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com