Where to remove observer for NSNotification? 在dealloc方法中移除通知观察者带来crash NSNotificationCenter中的通知消息已经发出,而观察者对象子线程释放,也就是抛送通知消息的线程和观察者对象子线程释放的线程不一致时,存在crash风险,原因是NSNotificationCenter不是线程安全的. 解决办法:尽早移除通知 或者保证释放和抛送通知在同一个线程.…
在iOS9.0之前,通知中心对观察者对象进行unsafe_unretained 引用,当被引用的对象释放时不会自动置为nil,,也就是成了野指针. iOS9.0之后通知中心对观察者做了弱引用. 参考:https://blog.csdn.net/sinat_28585351/article/details/78133756…
1.注册通知 [NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify) name:@"myNotify" object:nil]; -(void)notify { NSLog(@"notify"); } 2.触发通知 [NSNotificationCenter defaultCenter] postNotificationName:@"myNotify&…
1.创建通知,最好在viewDidLoad的方法中创建 - (void)viewDidLoad { [super viewDidLoad]; //创建通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tongzhi:) name:@"tongzhi" object:nil]; } //接收通知并相应的方法 - (void) tongzhi:(NSNotification *)noti…
监听文本框的文字改变 * 一个文本输入框的文字发生改变时,文本输入框会发出一个UITextFieldTextDidChangeNotification通知 * 因此通过监听通知来监听文本输入框的文字改变 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:textField]; /…
http://www.cocoachina.com/ios/20151214/14596.html 在了解控制器的生命周期之后,我们都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用.很多时候我们根据自身需要将相关代码逻辑添加到这两个方法中,我们看下如下代码片段: 监听键盘的通知代码 这段代码是在控制器的viewDidLoad:方法中注册了一个键盘弹出的通知和键盘隐藏的通知,然后在调用…
[前言介绍] iOS的一种设计模式,观察者Observer模式(也叫发布/订阅,即Publich/Subscribe模式). 观察者模式,包含了通知机制(notification)和KVO(Key-value-observing)机制. 在这本文中,我们将介绍在日常项目当中经常使用到的通知机制这一种设计模式. 通知机制 委托机制是代理“一对一”的对象之间的通信,而通知机制是广播“一对多”的对象之间的通信: 一.是什么?[生活问题例子] “短信天气预报” 当A类发送一条信息给通知中心时,注册为用户…
通知中心的特点: 1:同步执行 2: 一对多发送消息 3: 降低程序耦合度 通知中心是单例,目的就是从任意一个发送消息到任意一个接收者,是同步执行的. 那么什么是同步呢? 用网上经典的说法,就是我叫朋友去吃饭,如果他没来,我就继续叫,等到他出来了我们才一起去吃,这就是同步:如果我叫朋友去吃饭,叫完无论他有没有来,我都先去吃饭, 这就是异步:在通知中心里就是每发送一次消息,要等消息被接收并完全执行完里面的方法,然后才返回来发送第二条消息,这就是同步,即通知中心发送消息是一条一条发送,而且是上条消息…
最近在做平板的过程中,发现了一些很不规范的代码.偶然修复支付bug的时候,看到其他项目代码,使用通知的地方没有移除,我以为我这个模块的支付闪退是因为他通知没有移除的缘故.而在debug和看了具体的代码的时候才发现和这里没有关系.在我印象中,曾经因为没有移除通知而遇到闪退的问题.所以让我很意外,于是写了个demo研究了下,同时来讲下NSNotificationCenter使用的正确姿势. NSNotificationCenter 对于这个没必要多说,就是一个消息通知机制,类似广播.观察者只需要向消…
原文地址:Developing Push Notifications for iOS 10,译者:李剑飞 虽然通知经常被过度使用,但是通知确实是一种获得用户关注和通知他们需要更新或行动的有效方式.iOS 10有了新的通知,如新消息.商业信息和时间表的变化.在本教程中,我将向你展示如何使用通知在你的iOS应用程序,并且显示iOS 10引入了新特性.开发iOS 10推送通知你需要最新版本的Xcode,Xcode 8测试版,这些目前都是可下载的,在下载页面. 你可以去Github下载本教程的整个工程.…