NSNotification
基本使用方法:
监听系统字体改变。
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(preferredFontsChanged)
<span style="color:#ff6666;">name:UIContentSizeCategoryDidChangeNotification</span> object:nil];
}
-(void)preferredFontsChanged:(NSNotification *)notification
{
[self usePreferredFonts];
}
-(void)usePreferredFonts
{
self.body.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
}
结束收听后要关闭收听。
原因:通知中心始终用一个不安全指针指向你。如果没有结束收听就离开了堆,通知中心会发试着向你发一个通知,然后程序崩溃。
-(void)viewWillDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIContentSizeCategoryDidChangeNotification
object:nil];
}
自定义监听动作
//定义
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(doSomething)
name:@"自定义"
object:nil];
//调用
[[NSNotificationCenter defaultCenter] postNotificationName:@"自定义" object:self];