我正在使用NSNotifiationCenter,就像其他1000次一样,并发布通知,但我的观察员没有听到它?是什么给了什么?
===这是我的TABLEVIEW ===
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleSuccessSocket)
name:kNotificationServiceStartSuccessful
object:self];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleFailedSocketConnection)
name:kNotificationSocketFailedToConnect
object:self];
}
===这是我的SOCKETMANAGER(如果重要,套接字管理器是单例)===
-(void)willStartService {
....
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationServiceStartSuccessful object:nil];
....
}
我已调试并且在我的视图中调用了viewDidLoad。是的,我的willStartService正在被调用。
答案 0 :(得分:2)
尝试在object:nil
方法调用中设置-addObserver:selector:name:object
。您正在做的是告知通知中心仅侦听来自表格视图实例的通知。
如果您不想传递nil
,则必须传递套接字管理器的实例。
答案 1 :(得分:2)
您仅为自己发送的通知注册TableView。它应该是......
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleSuccessSocket)
name:kNotificationServiceStartSuccessful
object:nil];