iOS的通知Notification
这里是不同的对象之间的通知, 不是本地通知.
一开始玩, 很挠头, 后来发现原来只是对象init的过程出了问题.
首先, 新建一个简单的单controller的工程.
然后打开它的ViewController.m文件
@interface ViewController ()
@property NotifyObserver *obj; //这里是关键, 应该有一个property是另一个要通知的类的, 我之前写在了viewDidLoad里面, 结果死活通知没有响应, 其实原因是这个对象在viewDidLoad方法完成后就自动销毁了, 还通知个屁.
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.obj=[[NotifyObserver alloc] init]; //这里init了一个要通知的对象.
//NotifyObserver *obj=[[NotifyObserver alloc] init]; 之前是这么写的, 折腾了两个小时, 应该抽自己....
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (IBAction)notifyButtonPressed:(id)sender {
NSLog(@"pressed");
//这里开始通知了, 还留下一个问题是如何拿到userInfo, 先不管, 总之发送了一个名为updateMessage的通知, 内容就是my object.
NSNotification *notification = [[NSNotification alloc] initWithName:@"updateMessage" object:@"my object" userInfo:@{@"Status": @"Success"}];
[[NSNotificationCenter defaultCenter] postNotification:notification];
}
@end
谁要接收这个通知, 就要去注册一下
@implementation NotifyObserver
-(id)init{
NSLog(@"init");
//在init方法里面注册自己是一个观察者, 然后定义自己只接收"updateMessage"的通知, 别乱七八糟的啥都通知我, 另外, 如果通知到了, 麻烦运行update方法, 记得后面有个":"意思是自己是带形参的方法, Java母语的人笑而不语
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(update:) name:@"updateMessage" object:nil];
return self;
}
-(void)dealloc{
//记得这个对象要被销毁时, 要移除注册
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
//这个update方法就是通知的回调, 一旦通知来了, 就麻烦运行这个方法.
-(void) update :(NSNotification *)notification
{
NSLog(@"update");
NSString* str = (NSString*)[notification object];//这里取出刚刚从过来的字符串
NSLog(@"%@",str);
}
@end
几乎一天时间学会通知Notification, 够慢的....
越来越觉得iOS就是简单啊.....
通知, 委托, 这两个设计模式iOS玩得溜啊...
iOS的通知Notification的更多相关文章
- iOS消息通知Notification的用法
1.发送消息 NSNotification *notification = [NSNotification notificationWithName:@"selectPosition&quo ...
- ios 消息通知
苹果的通知分为本地通知和远程通知,这里主要说的是远程通知 历史介绍 iOS 3 - 引入推送通知UIApplication 的 registerForRemoteNotificationTypes 与 ...
- 通知 Notification 详解
效果 通知栏-刚收到通知时 通知栏-收到通知几秒后 标准视图 大视图-下滑前是标准视图 大视图-下滑后显示大视图 自定义通知 讲解 Notification,俗称通知,是一种具有全局效果的通知,它展示 ...
- IOS 本地通知 UILocalNotification
IOS 本地通知 UILocalNotification [本文章第四部分中的代码逻辑来自网上的借鉴,并非我自己原创] 大概一个月前,我开始跟着做IOS项目了.学习C++,了解Objective-C, ...
- 适配 通知 Notification 通知渠道 前台服务 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- IOS中通知中心(NSNotificationCenter)
摘要 NSNotification是IOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值.回调等地方应用很广. IOS中通知中心NSNotificationCenter应用总结 一.了 ...
- iOS 本地通知 操作
iOS 本地通知 操作 1:配置通知:然后退出程序: UILocalNotification *localNotif = [[UILocalNotification alloc] init]; loc ...
- IOS NSNotification 通知
一. 先看下官方对NSNotification通知的解释 1. NSNotification 通知 @interface NSNotification : NSObject <NSCopying ...
- 浏览器桌面通知Notification探究
首先说明,这篇博文不是科普讲解的,而是立flag研究的,是关于浏览器消息自动推送,就是下面这个玩意: 最近常常在浏览器看到这样的消息推送,还有QQ.com的推送,现在我对这个不了解,不知道叫消息自动推 ...
随机推荐
- iOS 开发进程与线程
进程(process)是一块包含了某些资源的内存区域.操作系统利用进程把它的工作划分为一些功能单元.进程中所包含的一个或多个执行单元称为线程(thread).进程还拥有一个私有的虚拟地址空间,该空间仅 ...
- Android 自定义控件之app标题栏的封装
在app的开发中,每一个页面都有上面的标题栏,总不能在开发的过程中没个界面都写一个标题栏的布局,所以为了开发的方便,将该标题栏进行的封装,以后在实际的开发工作中,也可以将该封装好的标题栏控件直接拿来使 ...
- linux敲入命令不记录的方法
history 查看命令列表 history 当前shell进程下的记录的 每个伪终端 窗口都是一个单独的进程,会自己记录命 ...
- Hibernate三种状态的转换
hibernate的状态 hibernate的各种保存方式的区(save,persist,update,saveOrUpdte,merge,flush,lock)及 对象的三种状态 hibernate ...
- [BS-25] IOS中手势UIGestureRecognizer概述
IOS中手势UIGestureRecognizer概述 一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)touches ...
- Speed-BI 图表功能:服装订货与销售匹配分析
在作为一个买手我们根据对市场的预测,订了一批的货回来. 我们总会有一个疑问:我的订货与市场的需求是一致的吗?是否出现了较大偏差.这时我们通过分析两个指标:订货占比与销售占比的差异,进行订货与销售的匹配 ...
- Token的管理
代码: RedisCommon using System; using System.Collections.Generic; using System.Linq; using System.Text ...
- 关于StdAfx.h和StdAfx.cpp
http://www.cplusplus.com/articles/2z86b7Xj/ https://msdn.microsoft.com/en-us/library/h552b3ca.aspx h ...
- PostgreSQL Loadbalance Analysis CPU
Before we can even begin to decide on a processor count, we need a baseline. With a working PostgreS ...
- window.cookie
本地测试cookie用火狐来测试 首先cookie是document上的一个属性. 先弹出一个cookie alert(document.cookie); //弹出是空的 设置cookie,格式是有一 ...