美文网首页iOS
iOS-KVC(七)字典相关

iOS-KVC(七)字典相关

作者: 厦门_小灰灰 | 来源:发表于2019-06-23 18:05 被阅读0次

iOS-KVC(一)基本使用
iOS-KVC(二)内部赋值深层次原理
iOS-KVC(三)内部取值深层次原理
iOS-KVC(四)常见异常处理
iOS-KVC(五)容器类
iOS-KVC(六)正确性验证
iOS-KVC(七)字典相关
iOS-KVC(八)常见使用

当对NSDictionary对象使用KVC时,valueForKey:的表现行为和objectForKey:一样。
所以使用valueForKeyPath:用来访问多层嵌套的字典是比较方便的。

KVC里面还有两个关于NSDictionary的方法

//指输入一组key,返回这组key对应的属性,再组成一个字典
- (NSDictionary<NSString *, id> *)dictionaryWithValuesForKeys:(NSArray<NSString *> *)keys;

//用来修改Model中对应key的属性
- (void)setValuesForKeysWithDictionary:(NSDictionary<NSString *, id> *)keyedValues;

简单示例:

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface Person : NSObject

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *city;
@property (nonatomic, copy) NSString *desc;

@end

NS_ASSUME_NONNULL_END

#import "Person.h"

@implementation Person

@end


=========

#import "ViewController.h"
#import "Person.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //dictionaryWithValuesForKeys
    Person *p = [[Person alloc] init];
    p.name = @"hui";
    p.city = @"Xiamen";
    p.desc = @"love ios";
    
    NSDictionary *resultDict = [p dictionaryWithValuesForKeys:@[@"name", @"city"]];
    
    NSLog(@"resultDict = %@", resultDict);
    
    //setValuesForKeysWithDictionary
    [p setValuesForKeysWithDictionary:@{@"name": @"fei", @"city": @"FuZhou"}];
    NSLog(@"name=%@, city=%@, desc=%@", p.name, p.city, p.desc);
}

@end

结果:
2019-06-23 15:41:58.329869+0800 study[11932:174321] resultDict = {
    city = Xiamen;
    name = hui;
}
2019-06-23 15:41:58.330041+0800 study[11932:174321] name=fei, city=FuZhou, desc=love ios

相关文章

  • iOS-KVC(七)字典相关

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC相关

    KVC相关 一、 iOS成员变量,实例变量,属性变量的区别 二、KVC取值、赋值原理 *学习方式:1、分析源码 -...

  • iOS-KVC(一)基本使用

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC(二)内部赋值深层次原理

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC(五)容器类

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC(四)常见异常处理

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC(六)正确性验证

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC(三)内部取值深层次原理

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • iOS-KVC(八)常见使用

    iOS-KVC(一)基本使用iOS-KVC(二)内部赋值深层次原理iOS-KVC(三)内部取值深层次原理iOS-K...

  • day8-总结

    1.字典相关方法 字典.clear() - 清空字典(删除字典中所有的键值对) 2.copy 字典.copy()-...

网友评论

    本文标题:iOS-KVC(七)字典相关

    本文链接:https://www.haomeiwen.com/subject/gxoiqctx.html