objective-c - 基础篇 - KVC键值转换设计模式
来源:互联网 发布:强力磁铁超强 淘宝网 编辑:程序博客网 时间:2024/06/06 19:28
一、KVC键值转换设计模式
注:KVC键值转换设计模式是一种更加灵活的访问对象属性的方法,该模式有三种实现方法。
#import "ViewController.h"
#import "Person.h"
#import "YZBCard.h"
@interfaceViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
id p = [[Personalloc]init];
//普通的赋值方法,这种是在Person * p = [[Person alloc]init];定义的时候
// p.name = @"张三";
//p.age = 23;
//第一种:键值的赋值方法,这种是在id p = [[Person alloc]init];
[p setValue:@"张三"forKey:@"name"];
[p setValue:@23forKey:@"age"];
NSLog(@"%@", [pvalueForKey:@"name"]);
//第二种:使用字典的形式
// NSDictionary * dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"李四", @"name", @21, @"age", nil];
// [p setValuesForKeysWithDictionary:dic];
//NSLog(@"%@", p);
//第三种:使用路径的方式,其中的 card,其实是另外一个YZBCard对象类,之后在Person中定义。
YZBCard * card =[[YZBCardalloc]init];
NSDictionary * dic = [[NSDictionaryalloc]initWithObjectsAndKeys:@"李四",@"name",@21,@"age", card,@"card",nil];
[p setValuesForKeysWithDictionary:dic];
[p setValue:@1234forKeyPath:@"card.number"];
NSLog(@"%@", p);
}
#import <Foundation/Foundation.h>
#import "YZBCard.h"
@interface Person : NSObject
@property(strong,nonatomic)NSString * name;
@property(assign,nonatomic)int age;
@property(strong,nonatomic)YZBCard * card;
@end
#import "Person.h"
@implementation Person
- (NSString *)description
{
return [NSStringstringWithFormat:@"姓名 = %@,年龄 = %d, card =%@",self.name,self.age,self.card.number];
}
@end
@interface YZBCard : NSObject
@property (strong,nonatomic)NSNumber * number;
@end
- objective-c - 基础篇 - KVC键值转换设计模式
- objective-c - 基础篇 - KVO键值转换设计模式
- objective c设计模式--KVC
- Objective-c中的键值观察设计模式
- objective-c中的:KVC-键值编码
- Objective-C之KVC(键值编码)
- Objective-C 【KVC(键值编码)】
- Objective-C学习-KVC(键值编码)和KVO(键值观察)
- Objective-C(十七、KVC键值编码及实例说明)——iOS开发基础
- Objective-C语言——KVC设计模式
- 【Objective-C基础】KVC使用
- objective-c中的cocoa特性:KVC-键值编码(十三)
- objective-c中的cocoa特性:KVC-键值编码
- Objective-C之KVC(键值编码)详解
- Objective-C KVC 自动转换类型研究
- Objective-C基础之KVC,KVO
- IOS KVC(键值编码)模式
- Objective-c:设计模式
- Spark性能优化指南——基础篇
- 使用NuGet安裝Entity Framework 4.2
- 二手车销售管理系统都是什么语言开发的?
- MatConvNet中mnist源码解析
- vc++初学
- objective-c - 基础篇 - KVC键值转换设计模式
- iOS动画编程-1
- Java synchronized详解
- 关于runtime的objc_getClass和object_getclass
- JAVA多线程和并发基础面试问答
- oracle 11g flashback_transaction_query中 的undo_sql值 为空
- diff and patch
- 背景颜色渐变(shape属性)
- 学会自己测天气系列八卦基础---02