KVC运用
来源:互联网 发布:linux mysql user表 编辑:程序博客网 时间:2024/06/06 11:37
MVC架构中数据模型 model赋值取值遇到的问题.
如果 model 属性的名字 和字典中 Key 的名字一致,我们可以 model.m 里写一句setValue:(id)value forUndefinedKey 方法里面可以不用实现;在赋值的时候直接用 [model setValuesForKeysWithDictionary:dict]; 就可以搞定;
在取值的时候大都用 model.属性,如 model.name 来得到相关值.但是有些特殊情况,我们只知道属性名称,这时就可以用NSString *name = [model valueForKey:@”name”]; 来取值;
那如果 model 属性的名字 和字典中 Key 的名字一致时,如属性名不能为 id 等关键字等,该怎么办呢?
名称不一致,可以在setValue:(id)value forUndefinedKey 写一些if 语句后用[model setValuesForKeysWithDictionary:dict]赋值;在用NSString *name = [model valueForKey:@”name Key”]取值 时 ,可以在Value:(id)value forUndefinedKey方法里面写一些 if 语句;问题就迎刃而解了.代码如下
- (void)setValue:(id)value forUndefinedKey:(NSString *)key { if ([key isEqualToString:@"id"]) { self.myID = value; }}
- (id)valueForKey:(NSString *)key { if ([key isEqualToString:@"name Key"]) { return self.name; } }
0 0
- KVC运用
- KVC 和 KVO 的基础理解与运用
- KVC
- Kvc....
- KVC
- KVC
- KVC
- KVC
- KVC
- kvc
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- KVC
- 横屏问题
- 餐饮生鲜外送-高并发架构设计
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 【操作系统】 置换策略模拟实现
- angularjs指令中的replace与transclude参数
- KVC运用
- 如何使用Markdown编辑器写博客
- MongoDB常用命令及例子详细介绍
- nodejs综合
- 将h.264视频流封装成flv格式文件(二.开始动手)
- Linux下很全面的监控工具dstat
- 像素、分辨率与图片大小之关系
- 《python进行自然语言处理》练习处理HTML内容的时候出现ImportError: No module named BeautifulSoup错误
- 利用ReentrantLock的Condition实现线程之间的通信