KVC 和 OC字典
来源:互联网 发布:arduino编程教程 编辑:程序博客网 时间:2024/05/21 15:03
KVC(键值编码)和OC 字典很相似,都是键值存储。但是OC 字典比较灵活,它是一种映射。其输出结果是输出为
- [dict setObject:<#(id)#> forKey:<#(id<NSCopying>)#>]
- int main(int argc, const charchar * argv[])
- {
- @autoreleasepool
- {
- NSMutableDictionary *dict=[[NSMutableDictionary alloc] init];
- [dict setObject: @"1a23" forKey:[NSNumber numberWithInt:123]];//<span style="font-family: Arial, Helvetica, sans-serif;">[NSNumber numberWithInt:123] 存放在常量区(堆、栈、常量、寄存器、代码区、全局区)</span>
- NSLog(@"y:%@",[dict objectForKey:[NSNumber numberWithInt:123]]);
- }
- return 0;
- }
2015-01-30 10:40:15.677 Test[12481:303] y:1a23
KVC则是不需要是字典对象调用,他来自是NSObject的分类。@interface NSObject(NSKeyValueCoding)
KVC的好处是,加入ClassA中的某个非public成员变量没有设置getter方法或者setter方法。但是作为使用者我们必须要获取或改变这个成员变量时可以使用KVC。但是前提是我们这个key 必须是ClassA的成员变量。否则报错。
- @interface ClassA : NSObject
- {
- @private
- NSNumber* _x;
- }
- @property(nonatomic,retain,readonly) NSNumber* x;
- @end
- #import "ClassA.h"
- int main(int argc, const charchar * argv[])
- {
- @autoreleasepool
- {
- ClassA *a=[[ClassA alloc] init];
- [a setValue:[NSNumber numberWithInt:123] forKey:@"x"];
- <span style="white-space: pre;"> </span>//<span style="font-family: Arial, Helvetica, sans-serif;">[a setValue:[NSNumber numberWithInt:123] forKey:@"y"]; 没有成员变量y,报错</span>
- NSLog(@"x:%@",[a valueForKey:@"x"]);
- }
- return 0;
2015-01-30 11:00:37.687 Test[12583:303] x:123
可以看出即使是私有成员变量,即使没有setter函数,也是可以设置和改变的。KVC可以会优先通过setter和getter函数进行更改。如果没有setter 和getter 函数则直接获取成员变量进行更改。
0 0
- KVC 和 OC字典
- KVC 和 OC字典
- oc的kvc和kvo
- OC学习:KVC和KVO
- OC中的KVC和KVO
- OC中的KVC和KVO
- OC-KVC
- OC --- KVC
- OC KVC
- iOS-字典转模型 和 kvc
- KVC和runtime字典转模型
- OC的KVC和KVO机制
- OC的私有、保护、公有和KVC
- OC学习日记11-KVC和KVO
- OC中的KVC和KVO(一)
- OC中的KVC和KVO(二)
- 《OC——KVC和KVO》
- 4.OC数组和字典
- 在S3C2440烧写程序
- 【剑指offer】整数中1出现的次数
- 通过CMake构建项目
- 8-TCP 协议(断开连接)
- CSDN学霸课表——144项大神级ppt制作技术
- KVC 和 OC字典
- 软件设计之——“高内聚低耦合”
- 【剑指offer】异或去重
- Git 和 SVN的区别总结
- Android 5.1 添加硬件抽象层(HAL)和JNI接口总结
- 待整理。。。blob。。。从页面存图片到数据库或本地的方法
- Aspose.Cells 8.6.3
- 悠着点
- Java关键字transient和volatile小结(转)