IOS开发之kvc简单介绍
来源:互联网 发布:hadoop分布式配置 mac 编辑:程序博客网 时间:2024/05/17 03:50
1.概念:
kvc也就是key value coding 就是键值编码。我们利用kvc可以给对象初始化,也可以去某个对象的值赋给另一个对象。
2.简单例子(利用kvc初始化对象,取某个对象的值付给另一对象)
person类:
#import <Foundation/Foundation.h>#import "Book.h"@interface Person : NSObject@property (nonatomic,copy) NSString* name;@property (nonatomic,assign) int age;@property (nonatomic,strong) Book *book;@end
Book类:
#import <Foundation/Foundation.h>@interface Book : NSObject@property (nonatomic,copy) NSString *bookName;@end
//// main.m// KVCDemo_01//// Created by QiZhang on 8/5/15.// Copyright (c) 2015 QiZhang. All rights reserved.//#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]) { // 1.利用kvc可以为对象初始化 Person *p1 = [[Person alloc] init]; [p1 setValue:@"SanZhang" forKeyPath:@"name"]; [p1 setValue:@"23" forKeyPath:@"age"]; Book *b1 = [[Book alloc] init]; b1.bookName = @"Iphone"; p1.book = b1; Person *p2 = [[Person alloc] init]; [p2 setValue:@"SiLi" forKeyPath:@"name"]; [p2 setValue:@"20" forKeyPath:@"age"]; Book *b2 = [[Book alloc] init]; [b2 setValue:@"IOS" forKeyPath:@"bookName"]; [p2 setValue:b2 forKeyPath:@"book"]; NSLog(@"%@-----%@",p1,[p2 valueForKey:@"name"]); NSLog(@"*******************"); NSArray *persons = @[p1,p2]; NSMutableArray *arrayM = [NSMutableArray array]; [arrayM addObject:[persons valueForKeyPath:@"book.bookName"]]; //利用kvc可以很方便的去取值 NSLog(@"%@",arrayM); return 0;}
运行结果:
2015-08-05 19:18:42.154 KVCDemo_01[13536:567138] <Person:0x100211e80>,{name:SanZhang,age:23}-----SiLi2015-08-05 19:18:42.155 KVCDemo_01[13536:567138] *******************2015-08-05 19:18:42.155 KVCDemo_01[13536:567138] ( ( Iphone, IOS ))
0 0
- IOS开发之kvc简单介绍
- iOS开发之 KVC,KVO简单了解
- ios开发UI篇—Kvc简单介绍
- iOS开发UI基础—12Kvc简单介绍
- ios开发UI篇—Kvc简单介绍
- iOS开发之KVC、KVO
- iOS开发之KVC/KVO
- iOS中KVC 和 KVO 简单介绍
- iOS KVC 和 KVO 简单介绍
- iOS监听模式系列之键值编码KVC、键值监听KVO的简单介绍和应用
- IOS开发之----KVC的使用
- iOS开发--Objective-C之KVC
- 12、iOS 开发之 KVC \KVO
- iOS开发之UI基础--KVC
- iOS开发UI系列之KVC/KVO
- iOS开发之KVC与KVO
- iOS开发之通知中心、KVC、KVO
- iOS开发之----KVC的使用
- UVA - 11478 Halum(差分约束系统)
- Java NIO原理图文分析及代码实现
- JS获取一个月的最后一天
- freemarker标签设置
- 有向图判环+拆解图求参会期望 SRM 660 Div1 Medium: Privateparty
- IOS开发之kvc简单介绍
- HDOJ--1242--Rescue
- MySQL:按前缀批量删除表格
- #android 拾遗07--使用butterknife绑定控件
- 源码级强力分析hadoop的RPC机制
- poj 3984 迷宫问题
- 判断二叉树是否为平衡树
- ExtJS的定时调用函数
- opencv GPU自带行人识别