IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)

上传人:工**** 文档编号:506461953 上传时间:2022-08-21 格式:DOCX 页数:4 大小:18.51KB
返回 下载 相关 举报
IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)_第1页
第1页 / 共4页
IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)_第2页
第2页 / 共4页
IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)_第3页
第3页 / 共4页
IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)》由会员分享,可在线阅读,更多相关《IOS中Key-Value Coding (KVC)的使用详解(烟台杰瑞教育IOS培训部)(4页珍藏版)》请在金锄头文库上搜索。

1、IOS中Ky-Vaue Codn(KV)的使用详解,键值编码,是一种非正式的合同,它提供一种机制来间接访问对象的属性。直接访问对象是通过调用访问器的措施实现,而vc不需要调用访问器的设立和获取措施,可以直接访问对象的属性。 下面简介一下kvc的用法:、对属性赋值 kvc是通过键值对的方式对属性设立值,提供了下面的措施,相称于访问器中的et措施。al为要设立的值,k是字符串,字符串中内容为为属性的名称- (id)etale:(id)vaue forKey:(NSString *)ky;-(oi)seValue:(d)vaue foKeyPah:(NSSrin *)keyPt; 下面通过一种小例子

2、解说一下通过访问器和kvc对属性赋值的代码实现。 假设Studn类中有一种a属性,直接对me赋值的方式为:Sut *st = Sden allc init;st.nae = jrhe; 通过k对n进行赋值:Studet *su= Sent alloc nt;su eue:jerehed foKey:name; 假设学生类中尚有一种属性为CassInf班级类的对象Class,在ClassIfo班级类中有个clasNo班级号的属性,下面通过直接的方式设立班级号:t.stuCass= CassIfo new;stu.tClas.casNo = ; 通过kvc设立班级号:stu.sulss= Clss

3、nf ne;stustVlue:()rKeyPth:tuClass.clssNo; 通过keyPh设立时,途径由xx.xx 表达; valu的值为C对象,如果为基本数据类型,需要进行装箱,也就是包装为C对象;、获取属性的值 kc提供了获取对象属性值的措施,相称于访问器的et措施,取值的时候也是通过键值对方式。- (id)aluForKey:(NSri *)k; (d)valuerePth:(NSString)eyPth; 下面通过一种小例子解说一下通过访问器和kvc对属性取值的代码实现。 假设要获取Stuent类中name的值,直接对m取值的方式为:NStin*nam= tu.nm;通过kvc

4、取值的方式为:NSting *nam = st vluerKey:nae;通过访问器措施直接从Stent类中取班级号:int um stu.stuCls.claN; 通过kvc取Studen类中中班级号:int nm = st valueFKePah:stuCla.cssNo intVlue; 默认取到的值为O对象,如果想得到基本数据类型,需要进行拆箱操作。3、key找不届时,解决异常 使用kc时,如果代码中的k值不存在,会抛出异常,可以在类中通过重写它提供下面的这个措施来解决这个问题。 (oid)setau:(d)vlue forndefnedKey:(NSSting*)k; 当ey不存在时

5、,会自动调用上面的这个措施,可以在这个措施中进行解决。4、kvc的用法补充 kvc非常好用,可以简化我们的代码,除了可以不用通过访问器措施,直接对属性进行访问外,还可以对对象中的属性进行运算。例如新添加一种Test测试类,里面有一种oe分数的属性,在Stue类中有一种数组,数组中寄存考试信息(Tet类对象),通过kv可以直接得到数组中存储的所有考试的平均成绩、最佳成绩等。 通过kvo存储考试数组信息: NSutbleArrr NSMutablAra; or(nt i=; i; i+) Test *st = Test alcini; tet etVale:(100-10i) forKey:cre

6、; ry Obect:tst; stuestAr ary;在udent类中将考试信息打印输出:NSLog(shw: st = % ,sevleForKe:tstAry); NLg(show: testAryscor = ,s.tstA vaueForKe:coe); SLo(s:tesA.score = ,self.testAry lueForKeyPath:scoe ); o(sho:数组中总成绩SUMscor %,self.estAry valuForePh:um.score ); Lo(s2: 数组中平均成绩sr %,sf.testAr vaueForKeyPath:avg.e ); NSLog(shw2: 数组中最大成绩MAsco= %,l.tstAry vaueKeyPh:axscre ); NSLog(sow: 数组中最小成绩MNscor =%,elfetAryaleForKeyh:min.core );

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号