OC循环渐进:KVC的其它操作
2015-08-08 12:28
429 查看
在KVC中,当你传入的一个字符串键值不存在时,程序会直接报错,那么如何避免这个问题呢?
我们可以在类中重写以下两个方法:
接下来我们就来使用以下以上两个方法:
1.定义一个Student类
Student.h 的文件代码如下:
Student.m 的文件代码如下:
2.main.m文件的输出
main.m的文件代码如下:
测试结果如下:
除此之外,还有KVC中还有以下两个很重要的方法:
1.使用
main.m文件代码如下:
测试结果如下:
2.’-(void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues’主要用于UI中的字典转模型,在UI中再介绍
至此,KVC中的常见用法以及全部讲完!
我们可以在类中重写以下两个方法:
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
- (id)valueForUndefinedKey:(NSString *)key
接下来我们就来使用以下以上两个方法:
1.定义一个Student类
Student.h 的文件代码如下:
#import <Foundation/Foundation.h> @interface Student : NSObject @end
Student.m 的文件代码如下:
#import "Student.h" @implementation Student - (void)setValue:(id)value forUndefinedKey:(NSString *)key { NSLog(@"设置时使用不存在的键值:%@",key); } - (id)valueForUndefinedKey:(NSString *)key { NSLog(@"调用时使用不存在的键值:%@",key); return nil; } @end
2.main.m文件的输出
main.m的文件代码如下:
#import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { Student *stu = [[Student alloc] init]; //使用不存在的键值 [stu setValue:@"张三" forKey:@"name"]; [stu valueForKey:@"name"]; } return 0; }
测试结果如下:
2015-08-08 11:58:05.167 Demo[532:25965] 设置时使用不存在的键值:name 2015-08-08 11:58:05.171 Demo[532:25965] 调用时使用不存在的键值:name
除此之外,还有KVC中还有以下两个很重要的方法:
- (id)valueForKeyPath:(NSString *)keyPath;
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues;
1.使用
- (id)valueForKeyPath:(NSString *)keyPath方法如下:
main.m文件代码如下:
#import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { //创建多个字典 NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:@"张三",@"name",@"15",@"age",nil]; NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"李四",@"name",@"16",@"age",nil]; NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"王五",@"name",@"17",@"age",nil]; //定义一个数组 NSArray *arra a8d6 y= [NSArray arrayWithObjects:dict1,dict2,dict3,nil]; //数组使用KVC过滤 array = [array valueForKeyPath:@"name"]; //数组输出 for (NSString *str in array) { NSLog(@"name = %@",str); } } return 0; }
测试结果如下:
2015-08-08 12:15:39.780 Demo[541:29205] name = 张三 2015-08-08 12:15:39.785 Demo[541:29205] name = 李四 2015-08-08 12:15:39.785 Demo[541:29205] name = 王五
2.’-(void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues’主要用于UI中的字典转模型,在UI中再介绍
至此,KVC中的常见用法以及全部讲完!
相关文章推荐
- oc 的一些概念
- [代码例程] iPhone开发入门(7)--- 从C/C++语言到Objective-C语
- IOS 面试习题 Object-C
- objective-c block 讲解
- IOS求职之OC面试题
- iOS OC和Swift混编
- OC_继承,初始化
- OC 省市区划分
- iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
- 编写 Objective-C 代码/掌握基本的编程技能 之 读后笔记
- kvc简单介绍
- 图形上下文解释CGContextSaveGState/CGContextRestoreGState
- Objective-C关键字self和super详解
- TableView的基本使用
- 字符串的获取
- iOS KVC & KVO
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- c语言入门(一)
- c语言入门(三)分支结构
- c语言入门(四)循环