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

聊天网站开发手机网站设计案

聊天网站开发,手机网站设计案,不会代码可以做网站维护吗,品牌网站建站KVC和KVO看起来很专业#xff0c;其实用起来还是比较简单的,KVC(Key-value coding)可以理解为键值对编码#xff0c;如果对象的基本类型#xff0c;那么键值对编码实际上和get#xff0c;set方法没有区别#xff0c;如果是属性是另外一个对象#xff0c;那么发现KVC用起来…KVC和KVO看起来很专业其实用起来还是比较简单的,KVC(Key-value coding)可以理解为键值对编码如果对象的基本类型那么键值对编码实际上和getset方法没有区别如果是属性是另外一个对象那么发现KVC用起来还是非常顺手KVO(key-value observing)是键值对的观察者模式,如果对象的属性发生变更那么会触发observeValueForKeyPath事件KVO的这种通知特性让我们在开发的时候节省了不必要的代码提高了开发效率。KVC键值对编码KVC的操作方法由NSKeyValueCoding协议提供NSObject就实现了这个协议也就是说如果对象是NSObject的子对象那么就支持KVC操作KVC有两种操作方法一种是设值一种是取值可以理解为getter和setter不过稍微有所不同的是设置对象值的方法中有两个setValue:属性值 forKey:属性名(一般的设置比如说是说设置NSString,NSNumber等基本类类型setetValue:属性值 forKeyPath:属性路径(定义两个对象Person和BookPerson有一个类型为Book的属性如果需要在Person中设置Book的值那么可以使用此方法)读取的也有两种valueForKey:属性名、valueForKeyPath:属性名。Person.h中的代码://// Person.h// BugDemo//http://www.cnblogs.com/xiaofeixiang/// Created by keso on 15/2/8.// Copyright (c) 2015年 keso. All rights reserved.//#import #import Book.hinterface Person : NSObjectproperty (strong,nonatomic) NSString *Name;property (strong,nonatomic) Book *Book;endBook.h中的代码://// Book.h// BugDemo//http://www.cnblogs.com/xiaofeixiang/// Created by keso on 15/2/8.// Copyright (c) 2015年 keso. All rights reserved.//#import interface Book : NSObjectproperty (strong,nonatomic) NSString *BookName;endPerson中Book属性的类型是Book类型看下主函数中简单调用:Person *person[[Person alloc]init];[person setValue:FlyElephant forKey:Name];Book *book[[Book alloc]init];person.Bookbook;//路径设置[person setValue:天涯明月刀 forKeyPath:Book.BookName];NSLog(%,[person valueForKey:Name]);NSLog(%,book.BookName);NSLog(%,[person valueForKeyPath:Book.BookName]);NSLog(%,person.Book.BookName);最终的打印结果就是FlyElephant和天涯明月刀需要注意的是一句就是需要先赋值一个对象给Person中Book属性不然是无法成功的:Book *book[[Book alloc]init];person.Bookbook;KVO观察者模式Key-Value Observing (KVO) 建立在 KVC 之上能够观察一个对象的 KVC key path 值的变化接下来的做的实例是在iOS中视图的ViewDidLoad中实现的跟KVC类似不过可以监听值的变化实现起来很简单addObserver添加观察observeValueForKeyPath观察变化之后的事件最后需要销毁以下监听事件概念就这么简单具体的可以看一下:新建博主(Blogger)和Article(文章)类:Article.h声明://// Article.h// KVDemo//http://www.cnblogs.com/xiaofeixiang/// Created by keso on 15/2/8.// Copyright (c) 2015年 keso. All rights reserved.//#import interface Article : NSObjectproperty (strong,nonatomic) NSString *ArticleName;endBlogger.h代码://// Bloger.h// KVDemo//http://www.cnblogs.com/xiaofeixiang/// Created by keso on 15/2/8.// Copyright (c) 2015年 keso. All rights reserved.//#import #import Article.hinterface Blogger : NSObjectproperty (strong,nonatomic) NSString *Name;property (strong,nonatomic) NSString *Url;property (strong,nonatomic) Article *MyArticle;end然后故事板中拖一个Button和一个TextField文本框然后点击的时候改变文本框的文字:首先在ViewDidLoad中添加以下代码,注意addObserver方法:_blogger[[Blogger alloc]init];//设置名称[_blogger setValue:FlyElephant forKey:Name];//设置Url[self.blogger setValue:http://www.cnblogs.com/xiaofeixiang forKey:Url];//设置观察者,options通知的对象形式[self.blogger addObserver:self forKeyPath:Name options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];//设置文本[_myTextField setText:[_blogger valueForKey:Name]];self.Article[[Article alloc]init];[self.blogger setValue:self.Article forKey:MyArticle];[self.blogger setValue:KVC和KVO的理解 forKeyPath:MyArticle.ArticleName];按钮点击事件:- (IBAction)blogObserver:(id)sender {NSLog(blogObserver);[self.blogger setValue:Keso forKey:Name];}OC中要实现KVO则必须实现NSKeyValueObServing协议不过NSObject已经实现了该协议直接重写observeValueForKeyPath即可:- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{NSLog(observeValueForKeyPath);if ([keyPath isEqualToString:Name]) {// [_myTextField setText:[_blogger valueForKey:Name]];[_myTextField setText:_blogger.MyArticle.ArticleName];}}最后销毁监听事件:- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.[self.blogger removeObserver:self forKeyPath:Name];}最终实现效果:
http://www.pierceye.com/news/429631/

相关文章:

  • 专业网站建设公司排名wordpress上传媒体文件大小修改
  • 郑州app开发公司排名网站seo 文章转载 修改标题
  • 深圳网站备案查询成都建设施工安全协会网站
  • 做视频找素材的网站有哪些邢台做网站多少钱
  • 创世网站建设公司设计理念页面设计
  • 免费的网站模板昆明装饰企业网络推广
  • 怎样用微信做购物网站广州菜谱制作公司
  • 视频网站发展好应该怎么做wordpress移动支付免费
  • 青岛网站设计案例wordpress 转换成小程序
  • 展览中心网站建设优质的成都网站建设推
  • 建材网站模板济南建设集团网站
  • 合肥市建设建筑网站wordpress医院主题
  • 做ui要上那些网站完全免费网站源码
  • 集团企业网站建设建立网站有哪些步骤
  • 如何做自己的网站整合营销和链路营销
  • 外贸网站的公司介绍响应式布局代码例子
  • 校园网站的意义保定建设厅网站
  • 网站域名注册后怎么打开网站ip安装wordpress
  • 山西太原做网站网站开发上线流程
  • 江门网站建设多少钱网页服务器一年多少钱
  • 网站开发属于什么行业农商网站建设个人总结
  • 网站建设业务开展方案昆明市城市基本建设档案馆网站
  • 湖南网站托管做招聘网站排名
  • 主机屋免费网站空间网站建设安全标准
  • .net cms网站管理系统生态养殖网站模板
  • 国外网站一般公司网站是什么设计师做
  • 备案停止网站网站建设研究课题
  • 个人网站开发是学什么语言网站建设 总体思路
  • 网站怎么留住用户在什么地方可以接到做网站的活
  • jsp页面如何做网站pv统计wordpress4.7.10