1

我有一个类似“静态”的类,我希望能够响应低内存警告。但是,当我从模拟器手动触发内存不足警告时,我收到“无法识别的选择器”错误。

相关代码:

@interface MyClass : NSObject
+ (void) receiveNotification:(NSNotification*) notification;
@end 

@implementation MyClass
+ (void) initialize {
    [super initialize];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification) name:@"UIApplicationDidReceiveMemoryWarningNotification" object:nil];
}
+ (void) receiveNotification:(NSNotification*) notification {
    // Breakpoint here never hits.
    // I instead receive error "+[MyClass receiveNotification]: unrecognized selector sent to class".
}
@end
4

1 回答 1

2

您的方法名称是receiveNotification:(注意冒号是名称的一部分)

所以选择器应该是@selector(receiveNotification:)

编辑:另外,顺便说一句,我不会在类初始化程序中调用 [super initialize] 。同样,您应该防止子类导致您编写的此初始化程序被调用两次。有关更多信息,请参阅 Mike Ash 的这篇非常好的帖子:类加载和初始化

我希望这会有所帮助。

于 2012-06-10T02:52:54.727 回答