[英]Objective C - How to access NSNotification inner objects?
我想從通知中訪問內部對象。 我需要獲取鍵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的輸出來進行字符串搜索?
NSLog的輸出實際上看起來像是
NSLog(@"%@", sender);
您確定要呼叫[發送者對象]嗎?
對象通常是發布通知的對象。 在您的情況下,最有可能使用類AVSystemController的對象
可以通過以下方式訪問userinfo
[sender userInfo]
所以請嘗試
NSLog(@"%@", [sender userInfo]);
順便說一句:如果您嘗試將音量按鈕的功能映射到其他功能(例如“拍照”-動作),則您的應用將無法獲得批准。 以防萬一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.