博客
关于我
Objective-C ---JSON 解析 和 KVC
阅读量:797 次
发布时间:2023-02-17

本文共 1656 字,大约阅读时间需要 5 分钟。

KVC - key value coding

1. 创建Model类

创建一个继承自NSObject的Model类

在Objective-C中,首先需要创建一个符合数据结构的Model类。我们假设需要处理的数据包括姓名、描述以及一组书籍。

在Model类中声明相应的属性:

@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *desc;
@property (nonatomic, strong) NSMutableArray *books;

2. 实现KVC方法

通过重写KVC方法来处理数据赋值和键值转换

当键为"desc"时:

if ([key isEqualToString:@"description"]) {            self.desc = value;        }

当键为"books"时:

if ([key isEqualToString:@"books"]) {            // 需要将数组转换为Model的实例            for (id obj in value) {                [_photoList addObject:[Photo instanceObj:obj]];            }        }
- (id)valueForUndefinedKey:(NSString *)key {            return nil;        }

3. 数据解析过程

在需要解析数据的控制器中调用以下方法

[model setValuesForKeysWithDictionary:dic];

解析示例

完整的解析过程示例代码如下:

NSDictionary *dic = @{        @"name": @"John Doe",        @"description": @"Hello World",        @"books": [{            @"title": @"The Great Gatsby",            @"author": @"F. Scott Fitzgerald"        }]    };    Model *model = [[Model alloc] init];    [model setValuesForKeysWithDictionary:dic];    

注意事项

1. 对于数组类型的键值,需要在Model中预先声明相应的属性

2. 在处理KVC时,需要注意键名与属性名的对应关系
3. 如果遇到特殊需求,可以自定义KVC行为

转载说明

原文地址: https://my.oschina.net/adso/blog/682174

你可能感兴趣的文章