web-dev-qa-db-ja.com

NSNotificationでuserInfoを渡す方法は?

NSNotificationを使用してデータを送信しようとしていますが、行き詰まります。ここに私のコードがあります:

// Posting Notification
NSDictionary *orientationData;
if(iFromInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
    orientationData = [NSDictionary dictionaryWithObject:@"Right"
                                                  forKey:@"Orientation"];
}

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter postNotificationName:@"Abhinav"
                                  object:nil
                                userInfo:orientationData];

// Adding observer
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(orientationChanged)
                                             name:@"Abhinav"
                                           object:nil];

セレクタでこのuserInfo辞書を取得する方法orientationChanged

46
Abhinav

NSNotificationオブジェクトが関数に渡されます。これには、NSNotificationCenterに提供した名前、オブジェクト、およびユーザー情報が含まれます。

- (void)orientationChanged:(NSNotification *)notification
{
    NSDictionary *dict = [notification userInfo];
}
92
JustSid

セレクタには:パラメータを受け入れます。
例えば。

@selector(orientationChanged:)

次に、メソッド宣言でNSNotificationパラメーターを受け入れることができます。

23
Manny

通知を正しく投稿しています。通知オブザーバーを次のように変更してください。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
 name:@"Abhinav" object:nil];

- (void)orientationChanged:(NSNotification *)notification
{
    NSDictionary *dict = [notification userInfo];
}

このソリューションがあなたのために働くことを願っています。

6
Amit Singh

In Swift userinfoオブジェクトを取得するには

     let dict = notification.userInfo
     print(dict)
0
amisha.beladiya