kvc
2013-05-06 22:33 甘超波 阅读(314) 评论(0) 编辑 收藏 举报// // main.m // kvcdemo01 // // Created by ganchaobo on 13-5-6. // Copyright (c) 2013年 ganchaobo. All rights reserved. // #import <Foundation/Foundation.h> #import "student.h" #import "book.h" //直接访问 void kvc1(){ student * stu=[[[student alloc] init] autorelease]; //间接访问 //先找getname方法,key _key [stu setValue:@ "zs" forKey:@ "name" ]; NSLog (@ "%@" ,stu.name); NSLog (@ "%@" ,[stu valueForKey:@ "name" ]); } //直接访问,根据对象先找对象中setprice方法,如果找不到price,_price void kvc2(){ student * stu=[[[student alloc] init] autorelease]; stu.bk=[[[book alloc] init] autorelease]; [stu.bk setValue: @1 .5 forKey:@ "price" ]; NSLog (@ "%f" ,[stu.bk price]); NSLog (@ "%f" ,[[stu.bk valueForKey:@ "price" ] floatValue]); } //设置多个key void kvc3(){ student *stu=[[[student alloc] init] autorelease]; NSDictionary *dic=@{@ "name" :@ "zs" ,@ "age" : @12 }; [stu setValuesForKeysWithDictionary:dic]; //设置多个key的值 NSDictionary *dic1=[stu dictionaryWithValuesForKeys:@[@ "name" ,@ "age" ]]; NSLog (@ "%@" ,dic1); } //keypath间接访问 void kvc4(){ student *stu=[[[student alloc]init]autorelease]; stu.bk=[[[book alloc] init] autorelease]; //间接设置值 [stu setValue: @15 forKeyPath:@ "bk.price" ]; NSLog (@ "%f" ,stu.bk.price); NSLog (@ "%f" ,[[stu valueForKeyPath:@ "bk.price" ]floatValue]); } void kvc5(){ student *stu=[[[student alloc]init]autorelease]; stu.name=@ "mike" ; student *stu1=[[[student alloc]init]autorelease]; stu1.name=@ "jack" ; student *stu2=[[[student alloc]init]autorelease]; stu2.name=@ "jim" ; NSArray *arr=@[stu,stu1,stu2]; NSArray *arr1=[arr valueForKeyPath:@ "name" ]; NSLog (@ "%@" ,arr1); } void kvc6(){ student *stu=[[[student alloc]init]autorelease]; stu.bk=[book bookwithprice:1.5]; student *stu1=[[[student alloc]init]autorelease]; stu1.bk=[book bookwithprice:1.6]; student *stu2=[[[student alloc]init]autorelease]; stu2.bk=[book bookwithprice:1.7]; NSArray *arr=@[stu1,stu2,stu]; NSArray *arr1= [arr valueForKeyPath:@ "bk.price" ]; NSLog (@ "%@" ,arr1); } void kvc7(){ student *stu=[[[student alloc]init]autorelease]; book *book1=[book bookwithprice:1.5]; book *book2=[book bookwithprice:1.6]; book *book3=[book bookwithprice:1.7]; stu.books=@[book1,book2,book3]; NSArray *arr= [stu.books valueForKeyPath:@ "price" ]; NSLog (@ "%@" ,arr); NSLog (@ "%f" ,[[stu.books valueForKeyPath:@ "@sum.price" ]floatValue]); NSLog (@ "%i" ,[[stu.books valueForKeyPath:@ "@count" ] intValue]); } int main( int argc, const char * argv[]) { @autoreleasepool { kvc7(); } return 0; }<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>www.shudanyu.com |
目前我正在专注NLP,请立刻加微信/QQ号 546611623, 免费送你原创《NLP高级执行师》高清视频
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步