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?
NSNotificationオブジェクトが関数に渡されます。これには、NSNotificationCenterに提供した名前、オブジェクト、およびユーザー情報が含まれます。
- (void)orientationChanged:(NSNotification *)notification
{
NSDictionary *dict = [notification userInfo];
}
セレクタには:
パラメータを受け入れます。
例えば。
@selector(orientationChanged:)
次に、メソッド宣言でNSNotification
パラメーターを受け入れることができます。
通知を正しく投稿しています。通知オブザーバーを次のように変更してください。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
name:@"Abhinav" object:nil];
- (void)orientationChanged:(NSNotification *)notification
{
NSDictionary *dict = [notification userInfo];
}
このソリューションがあなたのために働くことを願っています。
In Swift userinfoオブジェクトを取得するには
let dict = notification.userInfo
print(dict)