2010-10-03 2 views
0

Я хочу получить доступ к внутреннему объекту из уведомления. Мне нужно получить ключ AVSystemController_AudioVolumeChangeReasonNotificationParameter.Цель C - Как получить доступ к внутренним объектам NSNotification?

Если я вызываю [объект отправителя], я получаю этот вывод. Но если я позвоню

[[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

Можете ли вы отредактировать и опубликовать всю ошибку «непризнанного селектора»? Ошибка связана не с вызовом '[[sender object] userInfo]' '' ', либо' [объект-отправитель] 'не совпадает с именем, указанным вызовом NSLog(). –

ответ

1

Ваш выход из NSLog на самом деле выглядит как выход

NSLog(@"%@", sender); 

Вы уверены, что вы звонили [объект отправителя]?

Объект часто является объектом, который отправил уведомление. В вашем случае, скорее всего, объект с классом AVSystemController

UserInfo можно получить с

[sender userInfo] 

Поэтому, пожалуйста, попробуйте

NSLog(@"%@", [sender userInfo]); 

КСТАТИ: Если вы попытаетесь отобразить функцию кнопки громкости для какой-либо другой функции (например, «Take Photo» -Action) ваше приложение не будет одобрено. На всякий случай.

 Смежные вопросы

  • Нет связанных вопросов^_^