KVC的用法
来源:互联网 发布:java 重写hashcode方法 编辑:程序博客网 时间:2024/05/21 10:58
试着用一种极为简单的例子来探索下KVC的用法,看完本文,相信会对大家的KVC的认识有一定的帮助.注意看代码.
KVC,即:Key-value coding,它是一种使用字符串标识符,间接访问对象属性的机制,它是很多技术的基础。
主要的方法就两个,setValue:forKey(setValuesForKeysWithDictionary),valueForKey.
主要用于Datamodel中的数据处理.使用该方法可以大大的简化代码,直接访问赋值model类中的属性的值.其中setvalue forkey 相当于setter方法.valueforkey相当于getter方法.以下为简单的使用实例.
创建一个Person类.也就是我们常用的dataModel类.
#import <Foundation/Foundation.h>#import "A.h"@interface Person : NSObject{ NSString *_name; int _age; NSString *_sex; A *_a;}- (void)sayHi;@end以下为.m文件
#import "Person.h"@implementation Person- (void)dealloc{ [_name release]; [_sex release]; [super dealloc];}-(void)setValue:(id)value forUndefinedKey:(NSString *)key{// NSLog(@"key==%@",key);}- (void)sayHi{ NSLog(@"name = %@ age = %d sex = %@ ",_name,_age,_sex); [_a ss];}@end其中的setValue:forUndefindeKey:方法用来告诉系统使用setValue:forKey: 寻找不到key的时候,通知系统不必报错.
#import <Foundation/Foundation.h>@interface A : NSObject{ NSString *_test;}- (void)ss;@end
#import "A.h"@implementation A- (void)dealloc{ [_test release]; [super dealloc];}- (void)ss{ NSLog(@"+++%@",_test);}@end
以下为实现.其中我的plist文件为一个字典里面有多个数组,每个数组中包含多个字典
NSString *file = [[NSBundle mainBundle] pathForResource:@"PersonData" ofType:@"plist"]; NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:file]; NSDictionary *d = [[dic objectForKey:@"C"]objectAtIndex:0]; Person *p = [[Person alloc] init]; [p setValuesForKeysWithDictionary:d]; [p setValue:@"LiSi" forKey:@"name"]; [p setValue:@"nan" forKey:@"sex"]; [p setValue:[NSNumber numberWithInt:20] forKey:@"age"]; A *aaa = [[A alloc] init]; //NSLog(@"%@",aaa); [p setValue:aaa forKey:@"a"]; [p setValue:@"haha" forKeyPath:@"a.test"]; NSLog(@"-----%@",[p valueForKey:@"sex"]); [p sayHi];
2 0
- KVC的用法
- KVC的用法
- KVC的用法
- KVC、KVO的用法
- KVC的一些用法
- KVC的简单用法
- KVC的用法
- kvc简单的用法
- iOS中KVC的用法
- KVC的原理和用法
- KVC的一些基础知识和用法
- ios KVC(NSKeyValueCoding)用法
- ios-kvc\kvo 用法
- KVC中setValuesForKeysWithDictionary用法
- KVC简单用法
- KVC/KVO简单用法
- iOS NSNotification通知和KVC KVO 的一些用法
- IOS KVC和KVO的用法及规则
- 遍历指定目录下的所有文件及文件夹
- How to Update STEC Firmware from C18 to C23
- c# XML序列化与反序列化
- linux下ifcfg的配置
- 如何制作U盘WinPE启动盘
- KVC的用法
- 【Mac软件】9月11日最新版UltraEdit for mac 3.2.0.10免费破解版下载!!
- 用TP做贴脸熄屏的方法
- VSX-2 搭建项目
- HTML5实战与剖析之表单——自动获取焦点属性(autofocus属性)
- 匆匆的2013——Benjamin
- quartz中cron表达式定义
- shell-init: error
- Nordic 的蓝牙疯了没?