私は自分のアプリにUITableview Controller、View Controllerを持っていて、NSNotificationCenterを使ってUITableview ControllerからViewControllerにNSDictionaryを渡そうとしています。したがって、UITableview Controller で通知をプッシュしてから、ViewController でセレクターを使用してオブザーバーを追加します。セレクターが呼び出されますが、NSLog があり、次のようなメモリ結果を取得します。
ビューコントローラー: 0x8a0bcc0
NSDictionary の代わりに NSString を渡そうとしましたが、文字列の値ではなく、メモリ結果を再度取得します。
私のコード:
UITableView コントローラー
NSString *string=@"This is a test string";
[[NSNotificationCenter defaultCenter] postNotificationName: @"Update" object: string];
ViewController
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"Update" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"Update" object:self];
そして、incomingNotification セレクター メソッドは次のとおりです。
-(void) incomingNotification : (NSNotification *)notification{
NSLog(@"Trying to print : %@",[notification object]);
}
すべての通知は ViewDidLoad メソッドで行われます。ありがとうございます!
アップデート
最後に、NSNotificationCenter の使用をやめ、プロパティを使用してデータを渡し、TableViewController からの継承を少し変更しました。通知が想定どおりに機能しなかった理由がわかりません。皆さん、ご提案やアイデアをどうもありがとうございました :)