Notifications:关于MVC模型中的'radio station'

转载请注明来源,谢谢——by Guava

Notification 既iOS中的“通知”(广播站)机制可以用来监听系统、模型的变化。

接收端:

通过

[NSNotificationCenter defaultCenter]

获得一个共享实例,就用这个对象来接收广播。

收听广播的方法是,向对象发送消息:

- (void)addObserver:(id)observer // you (the object to get notified) 收听广播的对象,对一般的controller来说是self。
           selector:(SEL)aSelector // a mothod inside of the observer . 收听的对象中的某个方法。当广播出现时调用这个方法。
               name:(nullable NSString *)aName //name of station.
             object:(nullable id)anObject;// whose changes you‘re interested in (nil is anyone‘s) 这个选项是nil的时候,可以收听来自任何对象的广播,当有值的时候,只收听来自该对象的广播。一般来说,设置成nil。

接下来是,我们有可能感兴趣(真正感兴趣的往往不是值的传递,而是是否发生了广播)的地方,是广播中传递了什么值,或者说,怎么获得广播中传递的值,以下是如果出现广播时,被调用到的方法:

- (void)aSelector:(NSNotification *) notification//这个方法的名字,应该和上面消息中传入的selector 的名字的一样的。
{
    notification.name; //the name passed about. 广播站的名称,和上面消息中传递的name的值是一样的。
    notification.object; //the object sending you notification. 发送广播的对象,对应着上面的sender。
    notification.userInfo; //notification-specific information about what happened. 包含的内容取决于发送广播的对象在里面存了什么内容
}

notification.userInfo实际上是一个NSDictionary,取数据的时候,还是需要用[notification.userInfo objectForKey:keyName]来取的。

如果不知道里面放着什么(也许是一个id类),也许会需要isKindOfClass或者respondsToSelector来使用它。

接收方最后一步处理,是关于把自己移除出广播机制的问题。在比较早先的版本,指向observer的指针是一个不安全保留型(unsafe retain),详情可见

http://study.163.com/plan/planLearn.htm?id=1533019#/learn/resVideo?lessonId=263037

这个视频的57--60分钟。

或者文字版的:

http://www.cnblogs.com/coco-bao9107/p/4249705.html

然而这个指针的问题在现在(2015.10)已经得到了解决(亲测)。(如果有空的话后续会上传githu,届时更新链接)。

至于解决的方式,应该是依照白胡子老爷爷的想法,将该指针变成了一个weak的指针(个人推测)。

测试的结果是,当页面从堆里面释放之后,发送广播,没有反应,应用也没有崩溃。这显然是一个大家都想看到的结果(偷懒的没有写remove也不会造成应用崩溃了)。

Notifications:关于MVC模型中的'radio station'

时间: 2024-08-28 22:46:38

Notifications:关于MVC模型中的'radio station'的相关文章

[Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列——添加数据 概述 上篇文章中介绍了添加数据,在提交表单的数据的时候,我们需

Asp.net MVC]Asp.net MVC5系列——在模型中添加

目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 [Asp.net MVC]Asp.net MVC5系列--添加视图 [Asp.net MVC]Asp.net MVC5系列--添加模型 [Asp.net MVC]Asp.net MVC5系列--从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列--添加数据 概述 上篇文章中介绍了添加数据,在提交表单的数据的时候,我们需

[Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据

目录 概述 从控制器访问模型中的数据 强类型模型与@model关键字 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 概述 上篇文章介绍了如何添加Model,在这篇文章中,我们将通过控制器访问模型中的数据,还有有写朋友问我,这么简单的东西有必要分享吗?其实有些东西真的很简单,没必要分享,但是这也是我学习的历程,希望记录自己是

Android中MVC模型(复合模式)

mvc是model,view,controller的缩写,mvc包括三个部分: 1.模型(model)对象:是应用程序的主体部分,全部的业务逻辑都应该写在该层. 2.视图(view)对象:是应用程序中负责生成用户界面的部分.也是在整个mvc架构中用户唯一能够看到的一层,接收用户的输入,显示处理结果. 3.控制器(control)对象:是依据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m处理. android鼓舞弱耦合和组

带你初识Angular中MVC模型

简介 MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计模式,该模型的理念也被许多框架所吸纳,比如,后端框架(Struts.Spring MVC等).前端框架(Angular.Backbone等).在学习angular的过程中,我在网上查找关于angular MVC介绍的文章很少,有些文章也没有很直白地为初学者指明angular MVC到底是啥样貌,因此,今天我们就来谈谈MVC模型在angular的形态. 为了介绍angular MVC模型,我建立一个

JAVA Web中的MVC模型

在学习完servlet之后,老师讲解了一个MVC模型,将我们练习的项目进行升级,之前我们的代码全是在jsp里面写的,也就是说网页里的有大量的java代码.在写页面的逻辑的时候很方便,在网页里直接写,写完下面就能用,但是里面的逻辑处理太多,这就是一个大问题,任何人都可更改源码使结果发生改变,这样设计出来的网页没有任何安全性而言. 升级后的项目采用的是最普通的MVC模型,即一个请求一个servlet,但是这样重复代码太多,开发效率大大降低,在这个基础之上,老师讲了一个MVC模型,将servlet当作

Django框架进阶5 models常用字段及参数, choices参数, 自动显示sql命令配置, orm查询优化相关, orm中的事务操作, MTV与MVC模型, 图书管理系统(图书的增删改查)

models中的常用字段 AutoField(primary_key=True) 主键   (int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列.) CharField(max_length=32)     varchar(32) IntegerField()       int BigIntergerField()           bigint DecimalField()    decimal EmailField(

MVC模型

当客户端提交请求至服务端时,Struts2的FileterDispatcher(核心控制器)会负责拦截,并且内置拦截器会负责对请求中的参数做一系列的预处理工作(包含:解析参数.类型转换.DTO封装等).然后提交给具体的Action(业务控制器)调用业务实现直至返回处理结果,最后Action根据处理结果forward到具体的View层组件. 一.MVC模型介绍 MVC(Model.View.Controller)是在程序开发过程中衍生出的一套程序设计思想,它由三个单词的缩写组成,分别为:模型层(M

MVC模型的基本原理及实现原理

[转载]MVC架构在Asp.net中的应用和实现 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.net环境下的具体实现.旨在帮助Web设计开发者更好的了解和掌握MVC,合理利用MVC构建优秀的Web应用. 关键字:MVC.视图.控制器.模型.Asp.net Application and Implementation of MVC Construction in Asp.net Abstract