博客
关于我
Objective-C ---JSON 解析 和 KVC
阅读量:798 次
发布时间: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实现external sort外排序算法(附完整源码)
查看>>
Objective-C实现Factorial digit sum阶乘数字和算法(附完整源码)
查看>>
Objective-C实现factorial iterative阶乘迭代算法(附完整源码)
查看>>
Objective-C实现factorial recursive阶乘递归算法(附完整源码)
查看>>
Objective-C实现factorial阶乘算法(附完整源码)
查看>>
Objective-C实现factorial阶乘算法(附完整源码)
查看>>
Objective-C实现Factors因数算法(附完整源码)
查看>>
Objective-C实现Farey Approximation近似算法(附完整源码)
查看>>
Objective-C实现Fast Powering算法(附完整源码)
查看>>
Objective-C实现Fedwick树算法(附完整源码)
查看>>
Objective-C实现fenwick tree芬威克树算法(附完整源码)
查看>>
Objective-C实现FenwickTree芬威克树算法(附完整源码)
查看>>
Objective-C实现fermat little theorem费马小定理算法(附完整源码)
查看>>
Objective-C实现FermatPrimalityTest费马素数测试算法(附完整源码)
查看>>
Objective-C实现fft2函数功能(附完整源码)
查看>>
Objective-C实现FFT快速傅立叶变换算法(附完整源码)
查看>>
Objective-C实现FFT算法(附完整源码)
查看>>
Objective-C实现fibonacci search斐波那契查找算法(附完整源码)
查看>>
Objective-C实现fibonacci斐波那契算法(附完整源码)
查看>>
Objective-C实现fibonacci斐波那契算法(附完整源码)
查看>>