NSNotificationCenter を使用して、NSDictionary フォームを UIView から UIViewController に渡そうとしています。ディクショナリは、通知が投稿された時点では正常に機能しますが、受信メソッドでは、ディクショナリ内のオブジェクトにアクセスできません。
辞書を作成して通知を投稿する方法は次のとおりです...
itemDetails = [[NSDictionary alloc] initWithObjectsAndKeys:@"Topic 1", @"HelpTopic", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"HotSpotTouched" object:itemDetails];
UIViewController では、オブザーバーを設定しています...
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(hotSpotMore:)
name:@"HotSpotTouched"
object:nil];
テスト目的で、hotSpotMore は次のようになります...
- (void)hotSpotMore:(NSDictionary *)itemDetails{
NSLog(@"%@", itemDetails);
NSLog(@"%@", [itemDetails objectForKey:@"HelpTopic"]);
}
最初の NSLog は正常に機能し、辞書の内容を表示します。2番目のログは次の例外をスローします...
[NSConcreteNotification objectForKey:]: unrecognized selector sent to instance 0x712b130
渡された辞書のオブジェクトにアクセスできない理由がわかりません。
助けてくれてありがとう。
ジョン