0

プログラミングを上手に行うために、独自のNSNotificationCenterを作成しようとしています。EXC_BAD_ACCESSに遭遇しましたが、うまくいきません。

私の方法:

- (void)addObserver:(id)observer forKey:(NSString *)theKey withSelector:(SEL)block {
    NSString *selector = NSStringFromSelector(block);
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:observer, @"o",selector, "s", nil];
    [[observers objectForKey:theKey] addObject:dict];
}

の初期化でエラーが発生しましたが、そのNSDictionary *dict理由がわかりません。追加されるオブザーバーは、で実行されるUIViewControllerこのメソッドを呼び出しているオブザーバーです。viewDidLoadapplicationDidFinishLaunching

エラーEXC_BAD_ACCESScode=1が発生します

どんな助けもいただければ幸いです。

乾杯。

4

1 に答える 1

2
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:observer, @"o",selector, "s", nil];

私には「s」の@がないようです。

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:observer, @"o",selector, @"s", nil];

あなたの便宜のために。

于 2012-08-08T22:11:18.630 に答える