簡體   English   中英

目標C-如何訪問NSNotification內部對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM