• KVC的学习


    KVC常用注意  两点一个是模型属性中没有的定义的属性在取的时候一定要在模型类重写GET方法,第二点是取字典中没有的Key也要在模型中重写取Key的方法。

     

    - (void)viewDidLoad {

        [super viewDidLoad];

        self.demon=[[KVCdomen alloc]init];

      

    //    [self.demon setValue:@"小强" forKey:@"name"];

    //    [self.demon  setValue:@"18" forKey:@"age"];

    //    [self.demon  setValue:@"" forKey:@"sex"];

       // NSLog(@"%@",self.demon.name);

        NSDictionary*dic=@{@"name":@"wangyang",@"age":@"18" ,@"size":@"12"};//当我们的key在字典里面存在但是在模型里面不存在的情况下  我们要在Model里面重写set方法否则会崩

        

        [self.demon setValuesForKeysWithDictionary:dic];

     //   NSLog(@"%@",self.demon.name);

          //此处取字典里面没有的key   如果不写方法会崩 

        NSString*work=[ self.demon valueForKey:@"studentWork"];

        

        // Do any additional setup after loading the view, typically from a nib.

    }

     

     

     

      h文件的属性是字符串age ,

    @property (nonatomic,strong )NSString*name;

    @property (nonatomic,strong )NSString*age;

    @property (nonatomic,strong )NSString*sex;

    //这个方法在赋值时候没有对应属性时候调用

    .m文件  模型中

    -(void)setValue:(id)value forUndefinedKey:(NSString *)key{

     

        NSLog(@"key没有对应的属性%@",key);

    }

    //这个方法在取值时,取值没有器对应属性调用

    -(id)valueForKey:(NSString *)key{

     

        NSLog(@"%@你取的Key,没有对应的属性");

        return nil;

    }

     

  • 相关阅读:
    Linux安全加固
    mosquitto
    Docker设置2375端口
    linux shell 常见的时间戳操作
    tar打包并且排除log目录
    spring boot2整合shiro安全框架实现前后端分离的JWT token登录验证
    http post
    scp命令 Linux和Windows文件互传
    git did not exit cleanly (exit code 1) 的解决办法
    windows安装TortoiseGit详细使用教程【基础篇】
  • 原文地址:https://www.cnblogs.com/fengwuqingyang/p/4934198.html
Copyright © 2020-2023  润新知