Notification是ios的通知,就是起到广播的作用,当界面注册了这个通知后,就能接收到相应的广播,比如当某个界面数据发生改变的时候要刷新其他界面数据的时候就可以使用到通知了。
NSNotification的简单使用流程(例子)如下:
1、在viewDidLoad添加:
- (void)viewDidLoad
{//添加如下
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showAlertView:) name:@"showAlertView" object:nil];
}
2、.m文件中添加:(例子如下)
- (void)showAlert:(NSString *)msg
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Note" message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
- (void)showAlertView:(NSNotification *)notification
{
if (self.pickerView.getIndex <= 2) {
[self showAlert:@"Number of players has reached its minimum."];
}else if (self.pickerView.getIndex >= 50) {
[self showAlert:@"Number of players has reached its maximum."];
}
}
3、在需要响应并发出通知处,调用如下方法:
- (void)sendNotification{
if ([self getIndex] >= 50)
[[NSNotificationCenter defaultCenter] postNotificationName:@"showAlertView" object:nil];
if ([self getIndex] <= 2)
[[NSNotificationCenter defaultCenter] postNotificationName:@"showAlertView" object:nil];
}
4、在viewDidUnLoad添加:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"showAlertView" object:nil];
5、在dealloc中添加:
[[NSNotificationCenter defaultCenter] removeObserver:self name:nil object:nil];
总结:通知的主要作用是当某个界面的数据发生改变的时候,需要刷新其他很多界面,用通知就很合适。记得要移除通知,不然有可能在其他不想关的界面接收到了同样的通知,从而导致某些怪异的现象。