是否应该有一个静态的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]的任何调用,这可能是另一个问题)?这意味着您每次创建该类的实例时都将(重新)注册您的通知。您可能考虑实现真正的单例对象而不是类方法。

关于objective-c - 类为NSNotification观察者?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4383478/

10-09 10:00