博客
关于我
Objective-C ---JSON 解析 和 KVC
阅读量:799 次
发布时间: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

你可能感兴趣的文章
Objective-C实现Miller-Rabin素性测试程序(附完整源码)
查看>>
Objective-C实现min cost string conversion最低成本字符串转换算法(附完整源码)
查看>>
Objective-C实现MinhashLSH算法(附完整源码)
查看>>
Objective-C实现MinhashLSH算法(附完整源码)
查看>>
Objective-C实现MinHeap最小堆算法(附完整源码)
查看>>
Objective-C实现minimum coin change最小硬币找零算法(附完整源码)
查看>>
Objective-C实现minimum cut最小切割流算法(附完整源码)
查看>>
Objective-C实现minimum partition最小分区算法(附完整源码)
查看>>
Objective-C实现Minimum Priority Queu最小优先级队列算法(附完整源码)
查看>>
Objective-C实现Minimum Vertex Cover最小顶点覆盖算法(附完整源码)
查看>>
Objective-C实现MinimumCostPath最小成本路径算法(附完整源码)
查看>>
Objective-C实现min_heap最小堆算法(附完整源码)
查看>>
Objective-C实现mobius function莫比乌斯函数算法(附完整源码)
查看>>
Objective-C实现modular Binary Exponentiation模二进制指数算法 (附完整源码)
查看>>
Objective-C实现modular exponential模指数算法(附完整源码)
查看>>
Objective-C实现monte carlo dice蒙特卡洛骰子模拟算法(附完整源码)
查看>>
Objective-C实现monte carlo蒙特卡罗算法(附完整源码)
查看>>
Objective-C实现Mosaic Augmentation马赛克增强算法(附完整源码)
查看>>
Objective-C实现msd 基数排序算法(附完整源码)
查看>>
Objective-C实现MSRCR算法(附完整源码)
查看>>