022.KVC 如何处理不合理的nil值
来源:互联网 发布:sql存储过程输出参数 编辑:程序博客网 时间:2024/05/01 13:03
--------------- FKItem.h ---------------
#import <Foundation/Foundation.h>
@interface FKItem : NSObject
@property(nonatomic , copy) NSString* name;
@property(nonatomic , assign) int price;
@property(nonatomic , copy) NSString* name;
@property(nonatomic , assign) int price;
@end
--------------- FKItem.m ---------------
#import "FKItem.h"
@implementation FKItem
- (void)setNilValueForKey: (id)key
{
- (void)setNilValueForKey: (id)key
{
if([key isEqualToString:@"price"])
{
_price = 0;
}
else
{
[super setNilValueForKey: key];
}
}
@end
--------------- main.m ---------------
#import <Foundation/Foundation.h>
#import "FKItem.h"
int main()
{
FKItem* item = [[FKItem alloc] init];
[item setValue:nil forKey:@"name"];
[item setValue:nil forKey:@"price"];
NSLog(@"item的name为:%@", [item valueForKey:@"name"]);
NSLog(@"item的price为:%@", [item valueForKey:@"price"]);
{
FKItem* item = [[FKItem alloc] init];
[item setValue:nil forKey:@"name"];
[item setValue:nil forKey:@"price"];
NSLog(@"item的name为:%@", [item valueForKey:@"name"]);
NSLog(@"item的price为:%@", [item valueForKey:@"price"]);
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤。
二、本节代码涉及到的知识点:
1.如果我们使用KVC给一个基本数据类型的成员变量设置一个nil值,KVC会自动调用setNilValueForKey方法。
2.不过,这个方法的实现必须由我们自己来写,如果我们不写,系统还是会报错。
3.这个方法可以不声明,因为只要写了方法的实现,KVC就会自动找到它。
4.我们在写setNilValueForKey方法的实现的时候,可以自行决定nil值如何处理。
5.在本节代码中,给name赋nil值是合理的,输出正常。给price赋nil值是不合理的,应该转成0或其他数值。
0 0
- 022.KVC 如何处理不合理的nil值
- 022.KVC 如何处理不合理的nil值
- 键值编码(KVC)-处理不存在的key和处理nil值
- kvc nil的问题
- 如何处理开发中不合理的管理带来的问题
- 如何转换不合理存储的表 多值依赖
- [软件人生]如何拒绝不合理的要求
- 如何控制不合理的销售开支
- 如何拒绝不合理的工时安排
- 如何屏蔽IDEA不合理的提示警告
- KVC/KVO 进阶(四)KVC是如何处理异常的
- iOS中的字典值为nil的崩溃处理
- __weak如何实现对象值自动设置为nil的
- __weak如何实现对象值自动设置为nil的
- 对json数据""、nil、NSNull的处理
- 对json数据""、nil、NSNull的处理
- dateFromString永远返回nil的处理办法
- 不合理的课程安排
- TCP/IP
- HashMap实现原理
- 如何更新android应用的包名
- ALSA中PCM参数配置
- 第三方分享遇到的特殊问题
- 022.KVC 如何处理不合理的nil值
- 排序与list.sort()使用
- Unity3D加载4种机制
- 使用ngrok让微信公众平台通过80端口访问本机
- cuda纹理内存简单操作 (2015年)
- 021.forUndefinedKey 处理不存在的key
- Java 多线程(六) synchronized关键字详解
- 线性表的顺序表示和实现(数据结构)
- ubuntu 配置java环境变量