当前位置: 首页 > news >正文

美发企业网站模板河北专业做网站

美发企业网站模板,河北专业做网站,企业名录登记,泉州网站建设dreamnm故事背景#xff1a;大厂面试#xff0c;又问道了基本的kvc kvo的原理和使用#xff0c;由于转了前端#xff0c;除了个setter和getter#xff0c;我全忘记了#xff0c;其实还是没有理解记忆#xff0c;下面再看一下kvc 和kvo ,总结一个让人通过理解而无法忘记的方法大厂面试又问道了基本的kvc kvo的原理和使用由于转了前端除了个setter和getter我全忘记了其实还是没有理解记忆下面再看一下kvc 和kvo ,总结一个让人通过理解而无法忘记的方法  ---------------------------KVC--------------------------------- 注意所谓聊一下kvc 的机制就是kvc的定义使用方法及该方法的原理  KVC定义:(Key-value coding) 从名字就能看出kvc的意思就是键-值 编码是一种访问某个对象属性的方法 或者叫一种模式 1. 使用详解通常情况下我们会应用点语法xxx.name来访问一个对象中的属性。通过KVC我们可以只使用属性名字的字符串可以是你自己定义的名字也就是键来间接访问和操作对象的属性就是所谓的各种 setValue:你想操作的值 forKey你定义的名字-键 方法但其实在KVC的底层实现中还是会调用相应属性的存取方法如果对应的存取方法存在的话。同时利用KVC可以访问对象中的私有变量而不仅仅是公开的属性。在NSKeyValueCoding.h的头文件中可以看到相应的方法声明。 2.KVC的设置变量值的搜索模式使用原理 1首先会搜索对应属性名称的存取方法也就是setter以及getter方法如果有就直接调用存取方法。 2如果要访问的变量没有存取方法也就是setter以及getter方法例如私有的实例变量或者没有自动生成存取方法的属性值那么会首先检查类方法检查类方法 (BOOL)accessInstanceVariablesDirectly如果该类方法返回Yes就会按照名称顺序_key、_isKey、key、isKey来搜索实例变量如果该类方法返回NO就会调用setValue:forUndefinedKey: 或者 valueForUndefinedKey的方法。 3.KVC 与点语法比较 用点语法编译器会做预编译检查访问不存在的属性编译器会报错但是用 KVC 方式编译器无法做检查 如果有错误只能运行的时候才能发现。相比点语法用 KVC 方式 KVC 的效率会稍低一点但是较为灵活可以在程序运行时决定访问哪些属性并且用 KVC 可以访问对象的私有成员变量访问速度方面通过点语法访问变量比使用KVC访问变量要快因为点语法是直接访问存取方法没有响应复杂的搜索机制。 ---------------------------KVO--------------------------------- 注意所谓kvo 的机制也同样就是kvo是什么  它的使用方法 addObserve:self forkeypath:你定义的键名称及该方法的原理  什么是KVO? KVO Key-Value Observing也就是键值观察键值观察是一种通知机制,或者叫通知方法能够使得被观察对象的属性在发生变化的时候通知观察者类似于一种target-action的机制是Cocoa中观察者模式的一种实现。通常键值观察会协同键值编码KVC来一起使用。在NSKeyValueObserving.h头文件中可以看到跟KVO相关的方法。 KVO的实现原理 KVO的实现原理其实就是运行时使用了指针替换或者叫混淆也就是所谓的 isa-swizzling 方法这个英语不用记,本质是一种制造 “指向替换 ”的方法。每一个实例和类都有一个isa指针当然无法直接访问可间接访问。实例变量的isa指针指向对应的类而类的isa指针指向其元类啥是元类看下面在方法调用的运行时阶段实现其实就是根据isa指针找到所在的类或者元类接着在类或者元类的方法列表中寻找。 具体的指针替换机制就是当某个实例例如Person类的实例per继承自NSObject作为被观察者调用KVO的 addObserver方法时在运行时会动态生成Person的一个特殊的子类之所以说它特殊是因为这个子类的名称是按照规则命名的对于Person类就会创建一个名为NSKVONotifying_Person的子类类名前缀就是规定的NSKVONotifying_在这个子类中运行时会重写要监听属性的setter方法注意对于没有监听的属性是不会重写setter方法的class方法dealloc方法还有一个名为_isKVOA的方法。。。然后重点来了运行时会把实例Person类的 isa 指针指向修改的类原本是指向Person类修改为指向NSKVONotifying_Person类也就是新创建的 “特殊” 子类利用KVO调用的被监听属性的存取方法就是这个子类重写的存取方法。 *******元类****** 1.什么是元类 对象的isa指针指向类类也是一种对象被称为类对象其isa的指向是元类。 元类是系统给的定义和编译是由编译器完成的。 每个类都有独一无二的元类用来存储类方法。 可以通过下面的图来解释 对象 -- 类 -- 元类 -- NSobjectNSObject指向自身。 参考链接【iOS】—— 继承者链_ios 元类-CSDN博客 参考链接 KVO原理分析 - 简书 iOS基础黑科技KVO(键值观察)以及KVC(键值编码) - 简书 iOS KVC和KVO详解 - 简书 iOS KVC和KVO详解 - 简书
http://www.hkea.cn/news/14525708/

相关文章:

  • 网站制作工作室制作平台伏羲方舟网站建设
  • 中职电子商务网站建设与维护考试题低价网站建设要多少钱
  • 网站建设二公司福步外贸论坛网官网
  • 展示网站建设重庆顶呱呱网站建设
  • 网站建设定制单先买域名不建设网站吗
  • 天津住房与城乡建设部网站手机网页如何制作
  • 长春企业免费建站自己做下载网站吗
  • server 2008 iis 部署网站wordpress 电影主题
  • 受欢迎的购物网站建设网页设计与制作首页
  • 网站平台建设是什么安卓程序开发
  • 衡水学校网站建设wordpress版型
  • 找郴州一家做网站的公司电话南昌seo排名技术
  • 郑州贸网站建设公司毕业设计网页制作咖啡网站图片
  • 网站建设运转深圳有做网站的公司660元
  • 就业专项资金网站建设长沙网站建设联系电话
  • 123883网站21天打造你的个人品牌
  • 奉贤建设机械网站如何用dw做网站框架
  • 柳州网站建设psn118网站免费建设价格
  • 官方网站营销网站建设运营预算明细
  • 网站录入信息 前台查询功能怎么做wordpress首页强制新窗
  • 在哪里查网站是什么时候建站企业在哪里查询
  • asp网站开发工具神器网站的版面布局
  • 中国最好的域名注册网站长宁网站推广公司
  • 新手学做网站pdf互联在线app开发网站
  • 网站建设招标网网站开发企业培训心得总结
  • 软件工程公司排名简述搜索引擎优化
  • 做网站首页看不到图片个人网站注册名称
  • 网站推广排名教程旅游电子商务网站
  • 珠海策划网站建设平台asp.net p2p网站开发
  • 免费物业网站模板网站建设项目报告总结报告