我想从通知中访问内部对象。我需要获取密钥AVSystemController_AudioVolumeChangeReasonNotificationParameter。
如果我调用[发送者对象],我会得到此输出。但如果我打电话
[[sender object] userInfo]
我只得到“无法识别的选择器发送到实例”。那是为什么?
NSLog(@“%@”,[发送者对象])输出:
NSConcreteNotification 0x157a30 {name = AVSystemController_SystemVolumeDidChangeNotification; object = AVSystemController: 0x1616c0; userInfo = { "AVSystemController_AudioCategoryNotificationParameter" = "Audio/Video"; "AVSystemController_AudioVolumeChangeReasonNotificationParameter" = ExplicitVolumeChange; "AVSystemController_AudioVolumeNotificationParameter" = 1; }}
如果无法访问userInfo,我可以获取NSLog的输出来进行字符串搜索吗?
答案 0 :(得分:1)
NSLog的输出实际上看起来像是
的输出NSLog(@"%@", sender);
您确定要拨打[发件人对象]吗?
对象通常是发布通知的对象。在您的情况下,很可能是具有类AVSystemController
的对象可以使用
访问userinfo[sender userInfo]
所以请尝试
NSLog(@"%@", [sender userInfo]);
BTW:如果您尝试将音量按钮的功能映射到其他功能(例如“拍照” - 动作),您的应用将不会被批准。以防万一。