objective-c – 收到NSConcreteNotification,但没有定义?

objective-c – 收到NSConcreteNotification,但没有定义?,第1张

概述我正在为我的应用程序编写首选项,它会在登录时注册它(使用LSSharedItemList API).一切顺利,我的应用程序在复选框状态时切换其在用户的登录项中的存在.现在,我想在用户实际从Accounts.prefPane中的“登录项目”中删除应用程序时解决另一个问题. 使用通知观察器我看到分布式通知中心发送com.apple.loginItemsListDidChnage(介意拼写错误)通知,因 我正在为我的应用程序编写首选项,它会在登录时注册它(使用LSSharedItemList API).一切顺利,我的应用程序在复选框状态时切换其在用户的登录项中的存在.现在,我想在用户实际从Accounts.prefPane中的“登录项目”中删除应用程序时解决另一个问题.

使用通知观察器我看到分布式通知中心发送com.apple.loginItemsListDIDChnage(介意拼写错误)通知,因此我添加了具有相同选择器(即IBAction)的通知的观察者,该选择器处理首选项窗口中的复选框(实际上,[un] ]从/登录项目注册应用程序).

当我尝试比较将我的应用切换为登录项的 *** 作的发件人类时,会出现问题.使用[sender description]和[sender class]我看到NSConcreteNotification类,但是一旦我尝试对它进行比较 – 代码中断说没有定义这样的类:

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

如果我尝试将发送者与NSNotification进行比较 – 那么流量不会落入该分支.

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

运行Mac OS X 10.6.2

解决方法 NSConcreteNotification是抽象NSNotification类的私有子类.您不应该使用NSConcreteNotification类.如果要检查类是否为NSNotification,请使用-isKindOfClass ::

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

以上是内存溢出为你收集整理的objective-c – 收到NSConcreteNotification,但没有定义?全部内容,希望文章能够帮你解决objective-c – 收到NSConcreteNotification,但没有定义?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存