質問

静的なnsnotificationオブザーバー(以下のコードのように)を持つことが可能ですか?私はいくつかの問題を抱えていますが、それは私のシングルトンのクラス構造によるものかもしれません。

通知を聞くために常にクラスインスタンスを持っているわけではありませんが、このクラスの静的特性はアプリケーションのライフサイクルに固執しています。

- (id)init {
    [super init]

    [[NSNotificationCenter defaultCenter] addObserver:[self class]
                                             selector:@selector(action:aNotification:)
                                                 name:@"NSSomeNotification"
                                               object:nil];
    return self;
}

+ (void)action:(NSNotification *)aNotification {
    NSLog( @"Performing action" );
}
役に立ちましたか?

解決

最初の問題はあなたのセレクターかもしれません - それは @selector(action:).

また、通知を登録したいのですが init (電話がありません [super init], 、どちらが別の問題かもしれません)?つまり、クラスのインスタンスを作成するたびに通知が(再)登録されます。クラスメソッドの代わりに、真のシングルトンオブジェクトを実装することを検討する場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top