iOS监听模式之KVO、KVC的高阶应用】的更多相关文章

KVC, KVO作为一种魔法贯穿日常Cocoa开发,笔者原先是准备写一篇对其的全面总结,可网络上对其的表面介绍已经够多了,除去基本层面的使用,笔者跟大家谈下平常在网络上没有提及的KVC, KVO进阶知识.旨在分享交流. 目录: KVC的消息传递 KVC容器操作 KVC与容器类(集合代理对象) KVO和容器类 KVO的实现原理 KVC的消息传递 valueForKey:的使用并不仅仅用来取值那么简单,还有很多特殊的用法,集合类也覆盖了这个方法,通过调用valueForKey:给容器中每一个对象发送…
键值编码KVC 我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因为你可以利用字符串的方式去动态控制一个对象.其实由于ObjC的语言特性,你根部不必进行任何操作就可以进行属性的动态读写,这种方式就是Key Value Coding(简称KVC). KVC的操作方法由NSKeyValueCoding协议提供,而NSObject就实现了这个协议,也就是说ObjC中几乎所有的对象都支持KVC操作,常用的KVC操作方法如下: 动态设置: setValue:属性值 forKey:属…
首先,大家应该都明白的是委托是协议的一种,顾名思义,就是委托他人帮自己去做什么事.也就是当自己做什么事情不方便的时候,就可以建立一个委托,这样就可以委托他人帮自己去实现什么方法. 其次,我简单的总结了一下自己用到的委托的作用有两个,一个是传值,一个是传事件. 1.所谓传值经常用在b类要把自己的一个数据或者对象传给a类,让a类去展示或者处理.(切分紧耦合,和代码分块的时候经常用) 2.所谓传事件就是a类发生了什么事,把这件事告诉关注自己的人,也就是委托的对象,由委托的对象去考虑发生这个事件后应该做…
补充--通知中心 对于很多初学者往往会把iOS中的本地通知.推送通知和iOS通知中心的概念弄混.其实二者之间并没有任何关系,事实上它们都不属于一个框架,前者属于UIKit框架,后者属于Foundation框架. 通知中心实际上是iOS程序内部之间的一种消息广播机制,主要为了解决应用程序内部不同对象之间解耦而设计.它是基于观察者模式设计的,不能跨应用程序进程通信,当通知中心接收到消息之后会根据内部的消息转发表,将消息发送给订阅者.下面是一个简单的流程示意图: 了解通知中心需要熟悉NSNotific…
本文介绍Objective C中实现观察者模式(也被称为广播者/监听者.发布/注册或者通知)的五种方法以及每种方法的价值所在. 该文章将包括: 1 手动广播者和监听者(Broadcaster and listeners) 2 键-值观察(Key Value Observing) 3 通知中心(Notification center) 4 上下文通知(Context notification) 5 用于观察的委托(Delegate) 关于观察者 观察者模式是维持两个模块之间抽象关系的最强大的方式之…
补充--iOS开发证书.秘钥 iOS开发过程中如果需要进行真机调试.发布需要注册申请很多证书,对于初学者往往迷惑不解,再加上今天的文章中会牵扯到一些特殊配置,这里就简单的对iOS开发的常用证书和秘钥等做一说明. 证书 iOS常用的证书包括开发证书和发布证书,无论是真机调试还是最终发布应用到App Store这两个证书都是必须的,它是iOS开发的基本证书. a.开发证书:开发证书又分为普通开发证书和推送证书,如果仅仅是一般的应用则前者即可满足,但是如果开发推送应用则必须使用推送证书. b.发布证书…
推送通知 和本地通知不同,推送通知是由应用服务提供商发起的,通过苹果的APNs(Apple Push Notification Server)发送到应用客户端.下面是苹果官方关于推送通知的过程示意图: 推送通知的过程可以分为以下几步: 应用服务提供商从服务器端把要发送的消息和设备令牌(device token)发送给苹果的消息推送服务器APNs. APNs根据设备令牌在已注册的设备(iPhone.iPad.iTouch.mac等)查找对应的设备,将消息发送给相应的设备. 客户端设备接将接收到的消…
本地通知 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时.待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知.创建一个本地通知通常分为以下几个步骤: 创建UILocalNotification. 设置处理通知的时间fireDate. 配置通知的内容:通知主体.通知声音.图标数字等. 配置通知传递的自定义数据参数userInfo(这一步可选). 调用通知,可以使用scheduleLocalNotification:按计划调度一个通知,也可…
前言: APNs 协议在近两年的 WWDC 上改过两次, 15 年 12 月 17 日更是推出了革命性的新特性.但在国内传播的博客.面试题里关于 APNs 的答案全都是旧的.错的. 导航: 对 APNs 的吐槽 APNs新闻一栏 新旧 APNs 协议工作示意图对比 反人类的旧APNs协议设计 基于 HTTP/2 的全新 APNs 协议 改进了,但仍需改进.还是有坑 对App开发的影响 如何创建 Universal Push Notification Client SSL 证书 结束语 对 APN…
NSNotificationCenter 对于这个没必要多说,就是一个消息通知机制,类似广播.观察者只需要向消息中心注册感兴趣的东西,当有地方发出这个消息的时候,通知中心会发送给注册这个消息的对象.这样也起到了多个对象之间解耦的作用.苹果给我们封装了这个NSNotificationCenter,让我们可以很方便的进行通知的注册和移除.然而,有些人的姿势还是有点小问题的,下面就看看正确的姿势吧! 正确姿势之remove 只要往NSNotificationCenter注册了,就必须有remove的存…