[解決済み] NSNotificationCenterでオブジェクトを渡す方法
2022-06-13 19:17:05
質問
アプリのデリゲートから、別のクラスの通知レシーバーにオブジェクトを渡そうとしています。
整数を渡したいのですが
messageTotal
. 今、私は持っています。
レシーバに
- (void) receiveTestNotification:(NSNotification *) notification
{
if ([[notification name] isEqualToString:@"TestNotification"])
NSLog (@"Successfully received the test notification!");
}
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissSheet) name:UIApplicationWillResignActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveTestNotification:) name:@"eRXReceived" object:nil];
通知を行うクラスで
[UIApplication sharedApplication].applicationIconBadgeNumber = messageTotal;
[[NSNotificationCenter defaultCenter] postNotificationName:@"eRXReceived" object:self];
しかし、オブジェクトを渡すには
messageTotal
を他のクラスへ渡したい。
どのように解決するのですか?
"userInfo" バリアントを使用し、messageTotal 整数を含む NSDictionary オブジェクトを渡す必要があります。
NSDictionary* userInfo = @{@"total": @(messageTotal)};
NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
[nc postNotificationName:@"eRXReceived" object:self userInfo:userInfo];
受信側では、以下のようにuserInfo辞書にアクセスすることができます。
-(void) receiveTestNotification:(NSNotification*)notification
{
if ([notification.name isEqualToString:@"TestNotification"])
{
NSDictionary* userInfo = notification.userInfo;
NSNumber* total = (NSNumber*)userInfo[@"total"];
NSLog (@"Successfully received test notification! %i", total.intValue);
}
}
関連
-
[解決済み] エラー: バイナリ式のオペランドが無効です ('float' と 'float')
-
[解決済み] Objective-CのNSLog関数でNSString型を出力する方法とは?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] NSNotificationCenterのaddObserver in Swift
-
[解決済み] C言語で純粋にiOSアプリを書く方法
-
[解決済み】Objective-Cのコードをユニットテストするのに最適な方法は何ですか?
-
[解決済み】メインスレッドでタスクを実行するGCD
-
[解決済み】Objective-Cでオブジェクトがどのクラスであるかをテストするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcodeのビルド失敗 "アーキテクチャx86_64の未定義シンボル"
-
[解決済み] どのような場合に@synthesizeを明示的に使用する必要がありますか?
-
[解決済み] エラー: バイナリ式のオペランドが無効です ('float' と 'float')
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] NSStringをNSNumberに変換する方法
-
[解決済み] ブロック(__block)」というキーワードはどういう意味ですか?
-
[解決済み] Xcode 4でNSZombieEnabledを設定するにはどうすればよいですか?
-
[解決済み] objective-c/cocoaで例外を投げる
-
[解決済み】Objective-Cでクラスレベルのプロパティを宣言するにはどうすればいいですか?
-
[解決済み] swift 3.0のNotificationCenterとswift 2.0のNSNotificationCenterを使用してデータを渡すにはどうすればよいですか?