IOS开发之kvc简单介绍
2015-08-05 19:19
357 查看
1.概念:
kvc也就是key value coding 就是键值编码。我们利用kvc可以给对象初始化,也可以去某个对象的值赋给另一个对象。
2.简单例子(利用kvc初始化对象,取某个对象的值付给另一对象)
person类:
Book类:
运行结果:
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}-----SiLi 2015-08-05 19:18:42.155 KVCDemo_01[13536:567138] ******************* 2015-08-05 19:18:42.155 KVCDemo_01[13536:567138] ( ( Iphone, IOS ) )
相关文章推荐
- iOS开发之----去除tableViewCell分割线的左边间隙,将分割线填满
- iOS 缓存池 对象重复使用
- ios学习笔记--(oc基础4)
- iOS 8 Xcode6 设置Launch Image 启动图片<转>
- iOS Core Animation
- 《iOS 高级编程》之Tableview进阶指南
- 通过WireShark抓取iOS联网数据实例分析
- ios js call ios
- iOS开发中常用到的宏
- 快快快!27个提升效率的iOS开源库推荐
- iOS 动画系列之动画解释
- IOS给图片添加水印(两种方式)
- IOS7开发~Images.xcassets
- iOS 开发 解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled(转)
- IOS 实现下拉菜单
- iOS dSYM文件结构剖析(下)
- iOS开发中常用的颜色及其对应的颜色值
- IOS状态栏
- 全面理解iOS开发中的Scroll View[转]
- iOS中几种定时器