Objective c 是否使用[self-retain]向NSNotificationCenter添加一次性观察者?
在设计组件的过程中,我需要一个通知的“一次性”处理程序。我有一个对象,它只对通知响应一次,然后它应该删除自己。我的对象已用自动释放初始化,无法更改。下面的模式能够实现这一点吗Objective c 是否使用[self-retain]向NSNotificationCenter添加一次性观察者?,objective-c,memory-management,Objective C,Memory Management,在设计组件的过程中,我需要一个通知的“一次性”处理程序。我有一个对象,它只对通知响应一次,然后它应该删除自己。我的对象已用自动释放初始化,无法更改。下面的模式能够实现这一点吗 - (void) init { [[NSNotificationCenter defaultCenter] addObserver:[self retain] selector:@selector(doRespond)
- (void) init
{
[[NSNotificationCenter defaultCenter] addObserver:[self retain]
selector:@selector(doRespond)
name:@"someNotification"
object:nil];
}
- (void) doRespond
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:@"someNotification"
object:nil];
// do something
[self release];
}
乍一看,这是正确的做法。谢谢,很高兴有人增援。如果遇到任何问题,请发回!)我将协商这个问题的“关闭”决定:以这种方式处理通知可能是一种有用的模式。至少值得讨论一下。